我们在服务器的根目录中安装了WP并且运行良好..但是,我们刚刚在子域中安装了另一个应用程序。现在,我可以查看该应用程序的index.php,但无法对其进行任何操作..根目录中的htaccess规则(来自WP base install)正在影响请求。
那么,如何消除WP htaccess文件影响子域?
以下是root用户的htaccess内容(WP安装):
<IfModule mod_rewrite.c>
RewriteEngine On
# BEGIN WordPress
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>
对于子域中的htaccess:
RewriteEngine on
RewriteCond $1 !^(index\.php|css|stylesheets|js|images|user_guide|favicon\.ico|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
我在网上到处搜索并尝试了一些我发现的样本......没有任何效果。
非常感谢任何帮助! 感谢
更新 似乎Wordpress可能不是罪魁祸首。出于好奇,我删除了WP .htaccess文件中的所有行...并且子域中的应用程序仍然无法正常工作。它的重写规则一定是错的......
所以,这是第二个重写规则无效。如果我输入/index.php?关于那么我可以看到关于页面..但它应该显示为:/ about
答案 0 :(得分:5)
WP也是罪魁祸首(你有两个问题)。
我可以解决第一个.htaccess问题,因为WP是可预测的。你想把这个放在之前的BEGIN WordPress部分:
RewriteRule ^subdir-name/.*$ - [PT]
它会抓取对你的子目录的任何请求并通过它(PT),以便它不会被WordPress劫持。
你的第二个.htaccess中的问题是它似乎假设它仍然在根目录中。对于这个,我不能确定没有看到您的应用程序的布局,但/ index.php之前/可能是错误的。您确定第二个文件中的路径是否与文件的新布局相匹配?
答案 1 :(得分:2)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^office/.*$ - [PT]
# BEGIN WordPress
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>