[英].htaccess rewrite specific URL segment to a PHP file and then remove the php file from the URL?
我在相同的URL上都有一個wordpress網站和一個自定義構建應用程序。 我想將所有CMS(客戶應用程序)URL重定向到某個php控制器文件。 重定向后,我希望從網址中刪除php文件
例如www.website.com/cms重定向到www.website.com/backend.php/cms,但URL繼續顯示為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,則該URL不會更改為www.website.com/cms,它將保持為www.website.com/backend.php/cms。
我不太擅長.htaccess,但我認為自己走的路正確。
您是否嘗試僅通過url進行路由:
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的URL的所有魔力。
我最終通過以下RewriteRule解決了這個問題
RewriteRule ^/?cms([A-Za-z0-9\-_\/]+)/?$ /backend.php [L]
RewriteRule ^/?cms /backend.php [L]
感謝那些試圖幫助的人:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.