mod_rewrite - 规则不能一起工作,但可以自己正常工作

时间:2014-03-03 16:26:57

标签: apache .htaccess mod-rewrite url-rewriting

提前致谢。

我要做的是用“资产”这个词重写任何内容,然后简单地将/ projects /添加到开头。然后将其他所有内容重写到我的index.php文件中。

所以, /phantom-hearts/assets/pdf/cabbot-story.pdf /allyson-darke/assets/jpg/image1.jpg

变 /projects/phantom-hearts/assets/pdf/cabbot-story.pdf /projects/allyson-darke/assets/jpg/image1.jpg

然后,将其他所有内容重写到我的index.php文件中。

这是我的.htaccess文件

代码:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#rewrite project assets
RewriteCond %{REQUEST_URI} !/assets$
RewriteRule (.*)/assets(.*) projects/$1/assets$2 [L]

#rewrite everything else
RewriteRule .*          index.php/$0    [PT,L,NC] 

这两个规则都可以自行运行,这个文件适用于我尝试过的几个htaccess在线测试人员,但是当我在本地主机上试用它们时,我会收到内部服务器错误。

有什么想法吗?我错过了什么?非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#rewrite project assets
RewriteCond %{REQUEST_URI} !/assets
RewriteRule (.*)/assets(.*) projects/$1/assets$2 [L]

#rewrite everything else
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L,NC]