我只是想发送我发送的GET信息:
http://mywebsite.com/folder/index.php?category=category-alias-here http://mywebsite.com/folder/index.php?category=category-alias-here&page=5
要在URL栏上重写为:
http://mywebsite.com/folder/category-alias-here/
http://mywebsite.com/folder/category-alias-here/5/
我不能。它非常简单,我看到了几个类似的问题。在stackoverflow上测试了几个例子,它们都给了我404类别和两个页面。
这是我测试过的代码:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?category=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ index.php?category=$1&page=$2 [L]
我明白这个代码对我的结构来说是错误的,我尝试了几个更改放置和删除([^ /] +)或将第一个[L]更改为[N]。还有其他一些事情。但是没有运气。
请注意,整个网站都在一个真实的目录(/ folder /)中.htaccess也在那里(它不在root上),一旦我启动网站,一切都将在public_html上,但我不认为这是这个问题的原因。
是的,mod_rewrite已开启。实际上我使用了一个.htaccess,它可以在我放置的任何地方工作,它可以正确地获得类别,但它有点乱。
答案 0 :(得分:0)
找到了解决方案:
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([a-z-]+)\/([0-9-]+)\/$ index.php?category=$1&page=$2 [NC,L]
RewriteRule ^([a-z0-9-]+)\/$ index.php?category=$1&page=$2 [NC,L]