我想用htaccess改写URL的更好的可读URL并在PHP中使用$ _GET变量
我有时使用子域,所以它必须使用和不使用子域。也是在url中不需要的变量。我拍摄最大3个变量中的URL
的URL sub.mydomain.com/page/a/1/b/2/c/3
应导致sub.mydomain.com/page.php?a=1&b=2&c=3
和URL sub.mydomain.com/a/1/b/2/c/3
应导致sub.mydomain.com/index.php?a=1&b=2&c=3
其中$_GET['a'] = 1
我搜索并尝试了很多
RewriteEngine on
RewriteRule ([^/]+)\.domain.com/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ $1.domain.com/$2.php?$3=$4&$5=$6&$7=$8 [QSA,NC]
RewriteRule ([^/]+)\.domain.com/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ $1.domain.com/index.php?$2=$3&$4=$5&$6=$7 [QSA,NC]
RewriteRule ([^/]+)\.domain.com/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ $1.domain.com/$2.php?$3=$4&$5=$6 [QSA,NC]
RewriteRule ([^/]+)\.domain.com/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ $1.domain.com/index.php?$2=$3&$4=$5 [QSA,NC]
RewriteRule ([^/]+)\.domain.com/([^/]+)/([^/]+)/([^/]+)$ $1.domain.com/$2.php?$3=$4 [QSA,NC]
RewriteRule ([^/]+)\.domain.com/([^/]+)/([^/]+)$ $1.domain.com/index.php?$2=$3 [QSA,NC]
RewriteRule ([^/]+)\.domain.com/([^/]+)$ $1.domain.com/$2.php [L,QSA,NC]
后本想出了
但我得到的是一个未找到服务器错误
我没那么擅长这个,所以也许我负责的东西。
另外我希望它在最后使用和不使用斜线
我应该使用RewriteCond和/或设置一些选项吗?
在此先感谢。
而不是在mod_rewrite中进行分割,为什么不只是有一个简单的catchall规则('RewriteRule ^(。*)$ index.php?p = $ 1'),然后解析url,但是你想在php 。大多数CMS和Web框架都是这样做的,因为它更灵活,更容易维护,并且不依赖于Apache。 –
@LieRyan然后最多9个变量,好主意我会在下次遇到同样的问题时尝试。 – Dediqated
我不能帮忙,但说...... Q-Dance FTW! –