【问题标题】:How to rewrite two GET values on htaccess and mod-rewrite如何在 htaccess 和 mod-rewrite 上重写两个 GET 值
【发布时间】:2018-06-19 06:06:44
【问题描述】:

我只想制作我发送的GET信息:

http://mywebsite.com/folder/index.php?category=category-alias-here http://mywebsite.com/folder/index.php?category=category-alias-here&page=5

在网址栏上改写为:

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]。还有其他几件事。但没有运气。

请注意,整个网站都在一个真实的目录(/文件夹/)中,并且 .htaccess 也在那里(它不在根目录下),一旦我启动网站,所有内容都将在 public_html 上,但我不认为这是这个问题的原因。

是的,mod_rewrite 已开启。实际上,我使用了一个 .htaccess,它可以在我放置的任何地方工作,并且可以正确获取类别,但有点混乱。

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    找到解决办法:

    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]
    

    【讨论】:

      猜你喜欢
      • 2013-03-24
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多