我在同一个网址上有一个wordpress网站和一个自定义构建应用。 我希望将我的所有CMS(客户应用程序)URL重定向到某个php控制器文件。重定向后,我希望从URL中删除php文件
e.g。 www.website.com/cms 重定向到 www.website.com/backend.php/cms ,但网址仍显示为 www.website.com/ CMS
到目前为止,我有以下内容:
# Handle the custom App URLs
RewriteCond %{HTTP_HOST} ^(www.)?website.com/cms$
RewriteCond %{REQUEST_URI} !^backend.php/cms/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ backend.php/cms/$1
# Handle the Wordpress URLs by removing index.php
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
编辑:
问题是我的工作不起作用。
如果我去www.website.com/cms,我会得到404.
如果我访问www.website.com/backend.php/cms,网址不会更改为www.website.com/cms,则会保留为www.website.com/backend.php/cms
我对.htaccess并不擅长,但我认为我走的是正确的路线。
答案 0 :(得分:0)
您是否尝试过按网址路由:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/cms/(.*)$ /backend.php [L]
#or RewriteRule ^/cms/(.*)$ /yourcms/backend.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
所有关于'理解'你在cms阅读REQUEST_URI的网址的魔力。
答案 1 :(得分:0)
我最终通过以下RewriteRule
来解决这个问题RewriteRule ^/?cms([A-Za-z0-9\-_\/]+)/?$ /backend.php [L]
RewriteRule ^/?cms /backend.php [L]
感谢那些试图提供帮助的人:)