我有一个基本的htaccess重写文件,但是当它与之前的规则类似时,我无法获得其中一条规则。
我的代码是;
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^gallery$ gallery.php
RewriteRule ^about-us/page-1$ page-1.php
RewriteRule ^about-us/page-2$ page-2.php
RewriteRule ^about-us$ about-us.php
gallery,page-1和about-us都可以,但是第2页没有。
有没有办法让它发挥作用?
我尝试过不同的订单,如果将约 - 我们放在第一位,那么第1页或第2页都不起作用
注意:重定向会重定向到第2页但是包含的文件(css,js等)不会加载
答案 0 :(得分:2)
试试这个:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /about-us/page-2$
RewriteRule .* page-2.php [NC,L]
RewriteRule ^gallery$ gallery.php [NC,L]
RewriteRule ^about-us/page-1$ page-1.php [NC,L]
RewriteRule ^about-us$ about-us.php [NC,L]
答案 1 :(得分:1)
为以下2行添加[L,NC,QSA]
RewriteRule ^about-us/page-1$ page-1.php
RewriteRule ^about-us/page-2$ page-2.php
因此修改后的.htacces看起来像这样
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^gallery$ gallery.php
RewriteRule ^about-us/page-1$ page-1.php [L,NC,QSA]
RewriteRule ^about-us/page-2$ page-2.php [L,NC,QSA]
RewriteRule ^about-us$ about-us.php
正如Starkeen在评论中所说,对于css和js文件来处理重写的url 将以下代码添加到文档的头部。
<base href="yoursitename.com/">;