Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess SEF URL htaccess_.htaccess_Redirect - Fatal编程技术网

.htaccess SEF URL htaccess

.htaccess SEF URL htaccess,.htaccess,redirect,.htaccess,Redirect,目前我的url结构如下: http://mysite/index.php?page=main http://mysite/index.php?page=bowling http://mysite/index.php?page=inn 如何通过分别保留main、bowling和inn来优化此结构?尝试将这些规则添加到文档根目录中的htaccess文件中: RewriteEngine On RewriteCond %{THE_REQUEST} \ /+index\.php\?page=([^&a

目前我的url结构如下:

http://mysite/index.php?page=main
http://mysite/index.php?page=bowling
http://mysite/index.php?page=inn

如何通过分别保留main、bowling和inn来优化此结构?

尝试将这些规则添加到文档根目录中的htaccess文件中:

RewriteEngine On

RewriteCond %{THE_REQUEST} \ /+index\.php\?page=([^&]+)&id=([0-9]+)
RewriteRule ^ /%1/%2? [L,R]
RewriteCond %{THE_REQUEST} \ /+index\.php\?page=([^&\ ]+)
RewriteRule ^ /%1? [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([0-9]+)/?$ /index.php?page=$1&id=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /index.php?page=$1 [L]

确保mod_rewrite已打开。

工作正常,但我的网站上也有这种url index.php?page=sanaa&id=8,他们不想使用您的建议工作。您能解释一下这段代码代表RewriteRule ^[^/]+/?$/index.php吗?page=$1[L]?@SergeyBodrov第一条规则查找类似于/index.php?page=XXX的请求并将浏览器重定向到/XXX,第二条规则查找类似于/XXX的请求并在内部重写回/index.php?page=XXX。如果你还想让它处理id=,那是一个完全独立的问题谢谢你的帮助,你能给我一些建议如何处理id问题吗?会很感激的it@SergeyBodrov您只需添加另一个集,该集的功能完全相同,只是它与ID部分匹配