2013-08-13 5 views
-1

Я пытаюсь использовать чистые URL-адреса на своем веб-сайте для улучшения SEO. Я делаю это, используя mod rewrite с htaccess. Url выглядит следующим образом: http://mywebsite.com/s.php?share=100, и я хотел был бы принять url как http://mywebsite.com/s/100 или любой другой номер, который пользователь выбирает. Я использую это выражение регулярных выражений переписывания, но он не работает, как ожидалосьMod Rewrite php htacess

RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME}!-f 
    RewriteCond %{REQUEST_FILENAME}!-d 
    RewriteRule ^([a-z]+)/([a-z\-]+)$ /$1/$2.php 
    RewriteRule ^share/([^/]*)$ /s.php?share=$1 [L] 

Может кто-нибудь указать мне на то, что я делаю неправильно?

ответ

0

Вы хотите, чтобы ваш URL-адрес выглядел как http://mywebsite.com/s/100, что означает URI /s/100, но ваш шаблон выглядит как ^share/([^/]*)$. Так как URI начинается не с «share», этот шаблон будет never соответствует URI, который вы хотите. Попробуйте:

RewriteRule ^s/([^/]*)$ /s.php?share=$1 [L] 

Кроме того, поскольку вы запрашиваете /s/ и есть файл с именем /s.php, вам необходимо убедиться, что MultiViews выключен:

Options -Multiviews 

Так вообще, что-то вроде:

Options -Multiviews 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME}!-f 
RewriteCond %{REQUEST_FILENAME}!-d 
RewriteRule ^([a-z]+)/([a-z\-]+)$ /$1/$2.php 
RewriteRule ^s/([^/]*)$ /s.php?share=$1 [L] 
+0

Я пробовал использовать это, но он не работает –