Php htaccess重写规则仅部分起作用
我有一个基本的htaccess重写文件,但是当其中一个规则与以前的规则类似时,我无法使其工作 我的代码是Php htaccess重写规则仅部分起作用,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我有一个基本的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$ p
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
画廊,第1页和关于我们的所有作品,但第2页没有
有没有办法让它发挥作用
我尝试了不同的顺序,如果把关于我们放在第一位,第1页或第2页都不起作用
注意:重定向会重定向到第2页,但是所包含的文件(css、js等)不会加载
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]
为以下两行添加
[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/">;
;
不确定这是否是问题所在,但请注意,您的重写条件仅适用于第一条规则。如果它们适用于每个规则,您需要在每个规则之前重复它们。要使css和js文件在重写的url上工作,您需要在文档的开头添加一个base href,以了解更多信息,看到这个谢谢@Starkeen-我忘记了第2页的这行代码,但已经包含在第2页了-1@Gunaseelan在我添加了base href标记后,您的解决方案也起了作用。不幸的是,这也没有改变结果。感谢您的第二次尝试,虽然不幸的是,这并不能解决我的问题,但它对我仍然不起作用-我在上面添加了一个注释来进一步解释我的问题