pti*_*tim 8 .htaccess url-rewriting
编辑: 这是我的问题的主要编辑,基于评论中的反馈,以及对meta.stackoverflow的一些阅读.
我改变了目标,现在我的首要任务是在Laravel和WP之间路由顶级URL:我不再寻求共享代码/数据库/用户信誉等.
问题:我需要哪些重写规则来实现这样的URL结构:
/ // (home) delivered by WP
/content1 // WP
/content(n) // WP
/dashboard // delivered by Laravel
/widgets/mywidget/ // Laravel
Run Code Online (Sandbox Code Playgroud)
我按如下方式设置了我的文件,并测试了每个应用程序彼此独立工作.(即如果Laravel的重写规则是唯一使用的,Laravel使用laravel-index.php工作正常)
来自网络根目录:public_html /
/wordpress
/laravel3 // app dir
/css // these are from the laravel public dir
/images //
/js, etc //
/index.php // WP index.php
/laravel-index.php // laravel's index.php
Run Code Online (Sandbox Code Playgroud)
我在共享托管环境中,无法访问httpd.conf.
这是我的.htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^widgets - [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# Laravel
<IfModule mod_rewrite.c>
RewriteRule !^widgets - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ laravel-index.php/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
通过这种方式:
另一个问题是WP Dashboard正在窃取对/ dashboard的请求,我想将其重定向到Laravel
谢谢阅读!
对于 WordPress,您需要将不在小部件或仪表板文件夹中的所有请求发送到 index.php
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond !^widgets
RewriteCond !^dashboard
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Run Code Online (Sandbox Code Playgroud)
对于 Laravel,您需要执行相反的操作,仅将小部件或仪表板内的请求发送到 laravel-index.php
# Laravel
<IfModule mod_rewrite.c>
RewriteCond ^widgets
RewriteCond ^dashboard
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ laravel-index.php/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1980 次 |
| 最近记录: |