Apache mod#u rewrite-规则不';我们不能一起工作,但他们自己可以很好地工作

Apache mod#u rewrite-规则不';我们不能一起工作,但他们自己可以很好地工作,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,提前谢谢 我想做的是用“资产”这个词重写任何东西,并简单地将/projects/固定到开头。然后将所有其他内容重写到我的index.php文件中 所以, /幻影之心/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

提前谢谢

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

所以, /幻影之心/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文件

代码:

这两个规则本身都可以很好地工作,并且这个文件在我尝试过的一些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
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L,NC] 

很高兴知道,你可以点击我答案左上角的勾号,将答案标记为已接受。这很奇怪。该解决方案适用于我的本地主机。当我将它移动到godaddy时,我必须使用index.php?/$0,资产重写会将它发送到index.php。godaddy上有一些不同的东西。可能是
projects/$1/资产$2
未找到有效文件。试试
/projects/$1/资产$2
明白了。输了!资产之前。对于任何想要它的人,最后的代码是:
RewriteCond%{REQUEST_FILENAME}上的RewriteEngine-f RewriteCond%{REQUEST_FILENAME}-d#重写项目资产RewriteCond%{REQUEST_URI}/assets RewriteRule(.*)/assets(.*)/projects/$1/assets$2[L]#重写所有其他内容RewriteCond%{REQUEST_FILENAME}-f RewriteCond%{REQUEST_FILENAME}-重写规则。*index.php?/$0[PT,L,NC]
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]