我希望重写这个url:
http://salessurface.com/overseas/sub_page_details/MBBSAbroad/MBBS-in-UK/7
进入:
http://salessurface.com/overseas/sub_page_details.php?sup_menu=MBBS%20Abroad&menu=MBBS-in-UK&main_menu_id=7
我尝试将以下内容添加到.htaccess文件中:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ overseas/sub_page_details.php?sup_menu=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ overseas/index.php?sup_menu=$1&menu=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ overseas/index.php?
sup_menu=$1&menu=$2&main_menu_id=$3 [L]但它不起作用。
我该如何完成重写呢?
发布于 2017-10-19 19:50:30
你不需要这些条件,你只需要一个规则就可以做到:
RewriteEngine on
RewriteRule ^overseas/sub_page_details/(.*)/(.*)/(.*) /overseas/sub_page_details.php?sup_menu=$1&menu=$2&main_menu_id=$3 [NC,L]这将采用sub_page_details之后的路径,并将第一部分放在sup_menu中,第二部分放在menu中,第三部分放在main_menu_id中。
但我注意到,在你的示例网址中,你在真实网址中使用MBBS%20Abroad,而在重写的网址中使用MBBSAbroad,如果这不是一个拼写错误,并且真实网址上有一个空格,没有重写的网址,那么你需要对该选项使用不太具体的重写:
RewriteEngine on
RewriteRule ^overseas/sub_page_details/MBBSAbroad/(.*)/(.*) /overseas/sub_page_details.php?sup_menu=MBBS\ Abroad&menu=$1&main_menu_id=$2 [NC,L]这将硬编码网址的sup_menu部分,并采用MBBSAbroad之后的路径,并将第一部分放在menu中,第二部分放在main_menu_id中。
https://stackoverflow.com/questions/46823031
复制相似问题