我已经设置了GoDaddy共享主机帐户,不应该直接从服务器根运行脚本 - 脚本至少启动一个子目录。我也有子域也属于这个类别,因为我的服务器似乎只是将子域重写为选定的文件夹。
/root wordpress drupal app1 subdomains sub1 sub2 sub3
我决定我想让www.mydomain.com启动wordpress - 所以在对SO进行了大量研究并测试了一些解决方案之后 - 这就是有效的htaccess。其他解决方案导致500服务器内部错误,我认为这是我的托管计划的限制。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.mydomain.com$ [NC,OR]
RewriteCond %{REQUEST_URI} !wordpress/
RewriteRule ^(.*)$ wordpress/$1 [L]
</IfModule>
但是现在子域名不再起作用,而且从服务器错误消息The requested URL /wordpress/subdomains/sub1/ was not found on this server.
可以看出,我的重写规则正在为子域名而努力。
我尝试在RewriteRule中添加RewriteCond %{REQUEST_URI} !subdomains
但没有帮助。
同样RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d
- 所有重写都停止工作。
如何修改规则以便不应重定向特定的目录/模式?或者,如果目录存在,它不应该重写?
答案 0 :(得分:1)
尝试在之前添加此有关wordpress的规则:
RewriteRule ^subdomains - [L]
它应该简单地让以/subdomains
开头的请求通过,而不进行任何重写。
答案 1 :(得分:1)
用以下内容替换您的重写规则:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ wordpress/$1 [L]
这将确保不对任何文件或目录进行wordpress/
重定向。