【问题标题】:Remove file extension and rewrite url with htaccess删除文件扩展名并使用 htaccess 重写 url
【发布时间】:2016-08-18 03:06:21
【问题描述】:

我正在尝试

  1. www.website.com/stuff.php 到 www.website.com/stuff
  2. www.website.com/things/stuff.php 到 www.website.com/things/stuff
  3. www.website.com/news.php?article=1 到 www.website.com/news/1

目前我的 htaccess 如下,但它只允许场景 1 和 2。我尝试了其他尝试,其中 3 工作,但不是 1 和 2。我不知道如何获得多个条件共存。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
RewriteRule ^news/([^/]*)$ /news.php?article=$1 [L]

【问题讨论】:

    标签: apache .htaccess


    【解决方案1】:

    您可以使用以下规则

    RewriteEngine on
    
     #remove .php
    RewriteCond %{REQUEST_FILENAME}.php -f
     RewriteRule ^(.*?)/?$ /$1.php [L]
     #news/1 to /news.php?article=1
     RewriteRule ^news/(.+)$ /news.php?article=$1 [QSA,L]
    

    【讨论】:

    • 条件 1 和 2 使用该配置,新的 3 给出 500 错误。现在必须使用以下内容访问新闻页面:www.website.com/news/?article=5, www.website.com/news?article=5, www.website.com/news.php?article= 5
    猜你喜欢
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 2015-01-25
    • 2013-10-13
    • 2017-04-30
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    相关资源
    最近更新 更多