Apache 获取htaccess重写规则以仅重写特定URL

Apache 获取htaccess重写规则以仅重写特定URL,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,我只想重写此特定url: 到 这很好,但是当我去 它也改变了所有的链接(样式表、javascript、超链接……我不想改变的东西)。例如: 到 这就是我已经拥有的 RewriteEngine On RewriteCond %{HTTP_HOST} ^website.com\.co\.uk$ [OR] RewriteCond %{HTTP_HOST} ^www\.website.com\.co\.uk$ RewriteRule ^clients$ "http\:\/\/website.c

我只想重写此特定url:

这很好,但是当我去 它也改变了所有的链接(样式表、javascript、超链接……我不想改变的东西)。例如:


这就是我已经拥有的

RewriteEngine On
RewriteCond %{HTTP_HOST} ^website.com\.co\.uk$ [OR]
RewriteCond %{HTTP_HOST} ^www\.website.com\.co\.uk$
RewriteRule ^clients$ "http\:\/\/website.com\.co\.uk\/billing\/index\.php" [R=301]
RewriteRule ^project/([^/]*)$ /php/project.php?project=$1
您可以尝试以下代码:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?website\.co\.uk$ [NC]
RewriteRule ^clients/?$ http://website.co.uk/billing/index.php [NC,L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(php/project)\.php\?project=([^\s&]+) [NC]
RewriteRule ^ /%1/%2? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(php/project)/([^/]+)/?$ /$1.php?project=$2 [L,QSA,NC]

我不认为有规则会导致这种情况。您以前是否使用
[R=301]
进行过测试?可能是旧的重定向仍在缓存中。改用
[R]
清除浏览器的缓存,查看问题是否仍然存在。