我希望重写这个网址:
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]
但它不起作用。
如何完成重写?
答案 0 :(得分:0)
您不需要这些条件,只需遵守规则即可:
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
,如果这不是拼写错误且真实网址上有空格,则不会没有重写的URL,那么你需要对该选项使用一个不太具体的重写:
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
中。