0
我在我的htaccess文件中有以下內容,它需要一個類似於www.example.com/Page.php?id=About的URL並將其轉換爲www.example.com/about。唯一的問題是,當我在htaccess中設置Redirect 301s時,舊URL不會重定向到新的URL(我知道這是因爲你不應該在基本的Redirect 301中傳遞參數 - 基本重定向的例子,已經在下面嘗試過)。htaccess 301重定向URL參數
Redirect 301 /Page.php?id=About http://www.example.com/about
問題是,新的URL不一定只是刪除當前的id並用小寫版本代替它。舉例來說,我也想:
Redirect 301 /Page.php?id=Example http://www.example.com/example-page
我想保持重寫URL的當前功能,同時也希望將舊網址的任何訪問重定向到新的(即更新谷歌索引) 。訪問www.example.com/Page.php?id=目前仍然有效,但顯示的頁面沒有內容。
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9\-]+)/?$ Page.php?id=$1
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ Page.php?id=$1&tab=$2
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ Page.php?id=$1&tab=$2&tabid=$3
感謝您的建議。不幸的是,訪問http://www.example.com/Page.php?id=About雖然沒有重定向到http://www.example.com/about? –
該規則適用於page.php,小寫字母p。我剛剛用NC標誌更新了答案,使規則不區分大小寫。現在它應該匹配page.php和Page.php –
謝謝,幾乎在那裏,我得到:http://www.example.com/about?id=About現在。是否有可能在最後沒有?id = About? –