首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写.htaccess文件但无法正常工作

重写.htaccess文件但无法正常工作
EN

Stack Overflow用户
提问于 2017-10-19 12:54:26
回答 1查看 36关注 0票数 1

我希望重写这个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文件中:

代码语言:javascript
复制
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]

但它不起作用。

我该如何完成重写呢?

EN

回答 1

Stack Overflow用户

发布于 2017-10-19 19:50:30

你不需要这些条件,你只需要一个规则就可以做到:

代码语言:javascript
复制
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,如果这不是一个拼写错误,并且真实网址上有一个空格,没有重写的网址,那么你需要对该选项使用不太具体的重写:

代码语言:javascript
复制
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中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46823031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档