Справка по Mod_rewrite - PullRequest
       4

Справка по Mod_rewrite

0 голосов
/ 25 января 2011

Это то, что у меня есть, но оно не работает.

RewriteRule ^location/([a-zA-Z0-9_-]+)/reviews$ location.php?purl=$1&page=reviews [L]
RewriteRule ^location/([a-zA-Z0-9_-]+)/reviews/$ location.php?purl=$1&page=reviews [L]

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

http://www.example.com/this-location-1234/reviews/ до http://www.example.com/location.php?purl=this-location-1234&page=review

Ответы [ 4 ]

1 голос
/ 25 января 2011

Я исправил это. Я случайно пропустил несколько слов в ссылке, по которой я получал ошибку.

RewriteRule ^location/([a-zA-Z0-9_-]+)/reviews/?$ location.php?purl=$1&page=reviews [L]

Это прекрасно работает!

1 голос
/ 25 января 2011

Вы должны объединить эти два (почти идентичных) правила и убедиться, что у вас есть RewriteEngine on, и ваше правило выполняется (либо ваш .htaccess забирается, либо вы используете это в определении активного виртуального хоста).

RewriteEngine on
RewriteRule ^location/([a-zA-Z0-9_-]+)/reviews/?$ location.php?purl=$1&page=reviews [L]
1 голос
/ 25 января 2011

Я думаю, это должно работать для приведенных вами примеров URL:

RewriteRule ^([a-zA-Z0-9_-]+)/reviews/?$ location.php?purl=$1&page=reviews [L]

(замените два правила перезаписи на это)

Если у вас его еще нет, добавьтеRewriteEngine on до этого RewriteRule.

Если вы действительно хотите переписать /location/this-location-1234/reviews/ вместо /this-location-1234/reviews/, используйте это:

RewriteRule ^location/([a-zA-Z0-9_-]+)/reviews/?$ location.php?purl=$1&page=reviews [L]
0 голосов
/ 25 января 2011

Я полагаю, у вас есть другое свойство в вашем файле conf, называемое RewriteEngine?Также вы можете включить ведение журнала с помощью RewriteLogLevel.

...