【问题标题】:.htaccess pretty url issue.htaccess 漂亮的网址问题
【发布时间】:2012-06-05 01:27:48
【问题描述】:

我正在改变

mydomain.com/directory/?name=lorem&action=posts

mydomain.com/directory/lorem/posts

但我现在正在尝试添加一个名为“其他”的对象

所以我想得到

mydomain.com/directory/?name=lorem&action=posts&other=38291389

mydomain.com/directory/lorem/post/38291389

这是我在第一个示例中使用的 .htaccess 代码

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^(\w+)(/(\w+))?$ /directory/?name=$1&action=$3

这是我尝试为第二个示例制作的示例,但它不起作用

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^(\w+)(/(\w+))?$ /directory/?name=$1&action=$3&other=$4

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: .htaccess friendly-url pretty-urls


    【解决方案1】:

    保持简单:

    RewriteEngine On
    RewriteCond %{SCRIPT_FILENAME} -d [OR] 
    RewriteCond %{SCRIPT_FILENAME} -f [OR]
    RewriteRule .* - [L]
    
    RewriteRule ^(\w+)/(\w+)/(\w+)/?$ /directory/?name=$1&action=$2&other=$3
    RewriteRule ^(\w+)/(\w+)/?$ /directory/?name=$1&action=$2
    RewriteRule ^(\w+)/?$ /directory/?name=$1
    

    在单个正则表达式中组合多个效果并没有真正的好处(虽然它很聪明并且让你感觉很好)但是当正则表达式引擎完成它的工作时,聪明的正则表达式可能需要更多的时间来匹配而不是 2 或 3 更简单规则(如上)。

    【讨论】:

      猜你喜欢
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 2012-01-10
      • 2012-06-08
      • 2015-10-04
      • 2017-04-06
      • 1970-01-01
      相关资源
      最近更新 更多