PHP. Htaccess sorunu, özel / dinamik anahtar kelimeler

2 Cevap php

İşte benim. Htaccess dosyasının içeriği gider.

Options +FollowSymLinks
RewriteEngine On 
RewriteRule ^online-products$ products.php?type=online
RewriteRule ^land-products$ products.php?type=land
RewriteRule ^payment-methods$ payment-methods.php
RewriteRule ^withdrawal-methods$ withdrawal-methods.php
RewriteRule ^deposit-methods$ deposit-methods.php
RewriteRule ^product-bonuses$ product-bonuses.php
RewriteRule ^law-and-regulations$ law-and-regulations.php
RewriteRule ^product-news$ product-news.php
RewriteRule ^product-games$ product-games.php
RewriteRule ^no-products$ no-products.php
RewriteRule ^page-not-found$ notfound.php
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^casinos/(.*)$ product.php?id=$1
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ cms.php?link=$1
ErrorDocument 404 /notfound.php

Ne burada başarmak için çalışıyorum kurallar ilk seti belirli bir sabit kodlanmış sayfalara yönlendirme gereken bazı belirli anahtar kelimeler için geçerli olmasıdır. Ama bu anahtar kelimeleri başka bir şey parat Gördüğünüz gibi bir parametre olarak cms.php yönlendirmelidir.

Ama sorun her kelime cms.php yönlendiriliyorum olmasıdır. Ben istiyorum Oysa zaten zor. Htaccess dosyasında kodlanmış dışında her hangi başka bir anahtar kelime cms.php gitmek gerekir. Her kelime sadece.

Örnek:

www.sitename.com/online-products -> www.sitename.com/products.php?type=online
www.sitename.com/about-the-website -> www.sitename.com/cms.php?id=about-the-website
www.sitename.com/product-news -> www.sitename.com/product-news.php

Ayrıca ben karşılıklı bir başka konu ben alanı ile herhangi bir anahtar kelimeyi kullanamazsınız değildir. "Online-ürünler" gibi ince, ama "online ürünlerini" kullanamazsınız.

Lütfen uzman bilgisi ile bana yardımcı olun. Senin tür yardım için şimdiden çok teşekkürler. Takdir ediyorum.

2 Cevap

Eğer kuralları sonuna, örn [L] ekleyerek ilk bölümünü çözebilir:

RewriteRule ^page-not-found$ notfound.php [L]

Bu çalışma olmaktan sonraki herhangi bir kural önlemek gerekir. Bkz: http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule

Eğer URL bir boşluk gerekiyorsa bunu yapmak mümkün olmalıdır:

RewriteRule ^online\sproducts$ products.php?type=online [L]

İşte güncellenmiş kodu:

Options +FollowSymLinks
RewriteEngine On 
RewriteRule ^online\scasinos$ casinos.php?type=online
RewriteRule ^land-casinos$ casinos.php?type=land
RewriteRule ^payment-methods$ payment-methods.php
RewriteRule ^withdrawal-methods$ withdrawal-methods.php
RewriteRule ^deposit-methods$ deposit-methods.php
RewriteRule ^casino-bonuses$ casino-bonuses.php
RewriteRule ^law-and-regulations$ law-and-regulations.php
RewriteRule ^casino-news$ casino-news.php
RewriteRule ^casino-games$ casino-games.php
RewriteRule ^no-deposit-casinos$ no-deposit-casinos.php [L]
RewriteRule ^page-not-found$ notfound.php
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^casinos/(.*)$ casino.php?id=$1
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ cms.php?link=$1
ErrorDocument 404 /notfound.php