【问题标题】:URL rewriting: conflicting rewrite rulesURL 重写:冲突的重写规则
【发布时间】:2017-01-30 18:20:35
【问题描述】:

我正在尝试通过 URL 重写来做三件事:

  1. 删除 .php 文件扩展名
  2. 让我的帖子 URL 如下所示:mydomain.co.uk/resources/example-post 默认为 mydomain.co.uk/resources/post.php?s=example-post
  3. 让我的类别存档 URL 如下所示:mydomain.co.uk/resources/category/example-category 默认为 mydomain.co.uk/resources/archive.php?cat=example-category

这是我目前在 .htaccess 文件中的内容:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)$ $1.php [L,QSA]

RewriteRule ^resources/([a-zA-Z0-9-/]+)$ /resources/post.php?s=$1 [L]

RewriteRule ^resources/category/([a-zA-Z0-9-/]+)/page/([0-9]+)/{0,1}$ /resources/archive.php?cat=$1&page=$2 [L]
RewriteRule ^resources/category/([a-zA-Z0-9-/]+)$ /resources/archive.php?cat=$1 [L]

它正在做前两件事。但不是第三个。

如果我删除

RewriteRule ^([^\.]+)$ $1.php [L,QSA]

然后它会做第三件事,而不是前两件事。

有什么想法吗?我如何让它同时完成所有三件事?

【问题讨论】:

  • 你正在做这件事。您应该始终调用您的“最终”网址,然后将其重写为您的 php 脚本。 IE。 mydomain.co.uk/resources/category/example-category 转换为 mydomain.co.uk/resources/archive.php?cat=example-category 而不是相反。
  • 对不起,我不明白你的意思。我不太擅长 URL 重写。
  • 反过来做。调用页面 mydomain.co.uk/resources/category/example-category 而不是调用 mydomain.co.uk/resources/archive.php?cat=example-category 然后重写为 mydomain.co.uk/resources/archive.php ?cat=example-category.
  • 尝试交换它们。但它没有用。我可能在我原来的问题中写错了。我已经编辑过了。

标签: apache .htaccess mod-rewrite url-rewriting


【解决方案1】:

找到了解决办法。

只需要交换顺序,我现在有了这个:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)$ $1.php [L,QSA]

RewriteRule ^resources/category/([a-zA-Z0-9-/]+)/page/([0-9]+)/{0,1}$ /resources/archive.php?cat=$1&page=$2 [L]
RewriteRule ^resources/category/([a-zA-Z0-9-/]+)$ /resources/archive.php?cat=$1 [L]

RewriteRule ^resources/([a-zA-Z0-9-/]+)$ /resources/post.php?s=$1 [L]

一切正常。

【讨论】:

    猜你喜欢
    • 2011-11-21
    • 1970-01-01
    • 2012-06-09
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多