我对htaccess非常不熟悉,所以我不知道如何解决这个奇怪的问题。
我通过设置名称服务器将域连接到其他服务器。然后我使用htaccess和ModRewrite将路径链接到我服务器上的子文件夹,使用如下现有脚本:
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ [NC]
RewriteCond %{REQUEST_URI} !^/t/domainfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /t/domainfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ [NC]
RewriteRule ^(/)?$ t/domainfolder/index.php [L]
这很好用,但我也喜欢(动态)不存在的目录,比如domain.com/user/username
。我想我可以通过添加以下行来做到这一点:
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ [NC]
RewriteCond %{REQUEST_URI} !^/t/domainfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^user/(.*)$ /t/domainfolder/app/index.php?user=$1 [L]
RewriteRule ^(.*)$ /t/domainfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ [NC]
RewriteRule ^(/)?$ t/domainfolder/index.php [L]
这确实有效,但所有样式都会中断,只有纯HTML可见。控制台输出以下错误:
SyntaxError: Unexpected token '<'
错误指向页面顶部的doctype的<
,因此看起来它正在解析HTML或其他内容。任何帮助将不胜感激!
修改 我的非工作添加似乎打破了指向此服务器的其他域
答案 0 :(得分:1)
看起来你破坏了RewriteCond和RewriteRule对,添加了所有这些行:
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ [NC]
RewriteCond %{REQUEST_URI} !^/t/domainfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^user/(.*)$ /t/domainfolder/app/index.php?user=$1 [L]