我有这样的网址:
www.example.com/education/edu.php?Main=Colleges&Category=Engineering-colleges
我使用.htaccess
www.example.com/education/Colleges/Engineering-colleges
此外,我在同一个education
目录中有另一个网址,如:
www.example.com/education/eduS.php?Main=Colleges&CollegeId=$Id&CollegeName=$Name
我想像这样重写这个网址:
www.example.com/education/Colleges/$Name-sqr$Id
如何实现这一目标?我无法想到一种方法,因为上面两个重写URL具有相同数量的参数。所以我无法将它们重定向到正确的页面。
这是我的问题:
.htaccess
验证带有sqr$Id
的网址变量并重定向到eduS.php
页面。 Id
并使该变量用于该页面中的操作。 答案 0 :(得分:0)
您可以使用不同的正则表达式轻松实现此目的。我想你已经这样做了,所以你只能应用这样的规则:
(\w+)\-sqr(\d+)
顺便说一下,使用id-name会不会更好?
(\d+)\-(\w+)
答案 1 :(得分:0)
尝试:
RewriteRule ^([^/]+)/([^/]+)-sqr([0-9]+)$ eduS.php?Main=$1&CollegeId=$3&CollegeName=$2 [L]
在“education”文件夹中。它应该之前你重写为edu.php
的其他规则。如果您的规则位于文档根目录中,那么它需要如下所示:
RewriteRule ^education/([^/]+)/([^/]+)-sqr([0-9]+)$ /education/eduS.php?Main=$1&CollegeId=$3&CollegeName=$2 [L]
答案 2 :(得分:0)
在/education/.htaccess
:
RewriteEngine On
RewriteBase /education/
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/([^-]+)-sqr([0-9]+)/?$ eduS.php?Main=$1&CollegeId=$3&CollegeName=$2 [L,QSA,NC]
RewriteRule ^([^/]+)/([^/]+)/?$ eduS.php?Main=$1&Category=$2 [L,QSA]