Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php htaccess重写规则仅部分起作用_Php_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Php 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

我有一个基本的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
画廊,第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标记后,您的解决方案也起了作用。不幸的是,这也没有改变结果。感谢您的第二次尝试,虽然不幸的是,这并不能解决我的问题,但它对我仍然不起作用-我在上面添加了一个注释来进一步解释我的问题