我已经使用本地PHP从WordPress重新创建了一个站点,并在.htaccess中添加了某些ReWrite规则来模仿WP URL,但是我需要添加几个reWrite规则来美化几个URL。 / p>
我尝试创建2个目录,并且在每个目录中都有单独的.htaccess文件,但无济于事。
RewriteEngine On
RewriteBase /
# hide .php extension snippet
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1/ [R,L]
# add a trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteRule . %{REQUEST_URI}/ [L,R=301]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
#Beautify new URL's
RewriteRule ^operating-areas/([^/]+) town.php?place=$1
RewriteRule ^operating-area/([^/]+)/([^/]+) keyword.php?place=$1&keyword=$2
www.domain.com/operating-areas/London
需要发送到
myPage.php?place =伦敦
然后
www.domain.com/operating-area/London/Finance
需要发送到
myOtherPage.php?place = London&keyword =财务
此刻,我收到“重定向过多”。
我在网上找到了用于WordPress样式的规则,因此,我对该主题的了解有限,阻止了我在特定情况下阻止他们进行射击。
答案 0 :(得分:1)
您可以使用此代码块替换所有代码:
RewriteEngine On
RewriteBase /
# hide .php extension snippet
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1/ [R,L]
# add a trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteRule . %{REQUEST_URI}/ [L,R=301]
#Beautify new URL's
RewriteRule ^operating-areas/([^/]+)/?$ town.php?place=$1 [L,QSA,NC]
RewriteRule ^operating-area/([^/]+)/([^/]+)/?$ keyword.php?place=$1&keyword=$2 [L,QSA,NC]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
模式末尾的 /?$
允许末尾匹配可选的/
。在添加规则.php
之前保留此规则也很重要。