1

我已经设置了我的 GoDaddy 共享主机帐户,不应直接从服务器根目录运行任何脚本 - 脚本至少启动一个子目录。我也有子域也属于这一类,因为我的服务器似乎只是将子域重写到选定的文件夹。

/根
  WordPress
  德鲁巴
  应用程序1
  子域
     子1
     子2
     子3

我决定让 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.中可以明显看出我的重写规则正在为子域启动。

我尝试RewriteCond %{REQUEST_URI} !subdomains在 RewriteRule 之前添加一个,但没有帮助。此外RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d-all 重写停止工作。

如何修改规则以便不重定向特定目录/模式?或者,如果目录存在,它不应该重写?

4

2 回答 2

1

尝试在您对 wordpress 的规则之前添加它:

RewriteRule ^subdomains - [L]

它应该简单地让以开头的请求/subdomains通过而不进行任何重写。

于 2013-04-08T17:25:07.830 回答
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/不对任何文件或目录进行重定向。

于 2013-04-08T17:37:19.110 回答