早安堆栈!我的网站是目前的结构是这样的:.htaccess子目录中的执行顺序(wordpress/laravel)
- http://www.mywordpressite.com/
- http://www.mywordpressite.com/.htaccess
- http://www.mywordpressite.com/portal/
- http://www.mywordpressite.com/portal/.htaccess
我了解宇宙的是,如果我浏览到门户网站,(4)” .htaccess将被解析,而不是(或优先于)(2)的.htaccess。实际上,我观察到,即使在导航到(3)http://www.mywordpressite.com/portal/时,来自(2)的.htaccess也正在接管。
正如你可以想像,根目录是一个WordPress网站与标准的WordPress .htaccess文件:
/.htaccess
<files wp-config.php>
Order deny,allow
deny from all
</files>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
门户是一个Laravel门户,具有标准Laravel。 htaccess文件
/portal/.htaccess
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.php [L]
</IfModule>
我注意到的是,如果我删除(2)/.htaccess,突然间,所有东西都可以在门户网站上运行,所以肯定会发生冲突。我不会在这里发布我的虚拟主机的东西,因为两个.htaccess的工作/做他们应该做的 - 只是不在同一时间:
/.htaccess重定向管道所有输入的地方输入不对应于index.php文件中的文件或目录以便更好地解析。
/portal/.htaccess做了类似的事情。
我已经注意到的是,既.htaccesses,如果我浏览到,通常会通过门户网站的.htaccess解析的路线,如http://www.mywordpressite.com/portal/this/is/a/route我最终从我WordPress的网站得到一个404(例如它将URL传递到wordpress根目录的/index.php文件中),当然这个页面在WP中不存在。
当我删除wp /.htaccess时,当然wordpress不能正常工作,但突然之间,门户网站的.htaccess开始正常工作,并通过将url参数传递到/ portal来触发相应的路由/index.php进行处理。
这似乎倒退给我。有什么建议么?
你有没有尝试从WP规则集中排除'/ portal',像这样:'RewriteRule^index \ .php $ - [L]'下面的'RewriteCond%{REQUEST_URI}!/ portal [NC]',在门户规则集中添加'/ portal',如下所示:'RewriteCond%{REQUEST_URI} ^/portal [NC]'?正如MikeAnthony所说,你必须在门户规则集中添加'RewriteBase/portal'。 – 2013-02-16 23:51:56