2

我试图让 wordpress 和 laravel 并排运行并遇到一个小问题。

这是我的代码

# BEGIN Laravel
<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^/?admin/?.*$ index.php [L]
</IfModule>
# END Laravel

# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wp-index.php [L]
</IfModule>
# END WordPress

除了主页和管理页面(laravel)之外,除了最后没有“/”之外,wordpress 页面都可以工作。

有任何想法吗?

问候

4

2 回答 2

0

“重写”的意思是“将 URL 视为与此文件名匹配”。文件运行仍然可以告诉原始 URL 是什么,因此它知道要显示什么。

编码

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

表示如果指定名称的文件不存在,或者浏览器中的目录不存在,则继续执行下面的重写规则。

您拥有的第一条规则是“将其中包含 /admin/ 的任何内容发送到 index.php”——大概是 Laravel。

您拥有的第二条规则是“向 wp-index.php 发送任何内容”——大概是 WordPress。

服务器通常设置为直接 / 到 index.php,并且行

RewriteRule ^index\.php$ - [L]

意思是“不要重写 index.php,然后停止”,所以这就是为什么“主页”会转到 Laravel。

注释掉该行(在开头添加一个 #),看看这是否会使您的主页转到 WordPress。

此外,/admin 不会直接指向 Laravel,因为它不匹配规则(基于 /admin/)。如果您希望 /admin 工作,请从第一条规则中取出 /。

于 2014-04-02T10:07:17.067 回答
0

路由有问题。这个问题可能会解决您的问题: PHP Laravel Routing Issue

尝试所有建议,尤其是有关 apache 配置的建议。

于 2013-02-27T00:57:50.907 回答