【问题标题】:Htaccess conflictsHtaccess 冲突
【发布时间】:2013-12-09 00:32:16
【问题描述】:

我正在尝试对我的 .htaccess 文件进行一些重写

我要做的就是重写网址:
www.example.com/book.php?course=#WHATEVERSLUG

www.example.com/course/#WHATEVERSLUG

我已经成功使用下面的代码一段时间了,没有错误

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^course\/([^/\.]+)/?$ book.php?course=$1 [L]

然后,我尝试在下面添加另一个重写模块:

RewriteRule ^(.*)\/(\?.*)?$ $1$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]

通过删除 .php 扩展名来缩短我的网址,并删除斜杠,但由于某种原因,它们似乎不能很好地混合。我不太擅长 .Htaccess,所以任何帮助都是积极的。

或者如果有人有其他的重写建议:


www.example.com/book.php?course=#WHATEVERSLUG

www.example.com/course/#WHATEVERSLUG

重写 .php 文件以删除扩展名和斜杠..

我们将不胜感激。提前谢谢你。

【问题讨论】:

  • 您想重写所有 php 文件以使其没有 .php?例如yoursite.com/about 会在内部转发到 about.php?
  • 是的,但是如果有办法重写单个文件,并且我可以复制它并将其更改为我想要的任何文件,那会更酷,但我只是想要让它一起工作

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


【解决方案1】:

想通了!:

有一点帮助: Multiple conflicting htaccess RewriteRules

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

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

RewriteRule ^course\/([^/\.]+)/?$ ./book.php?course=$1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2012-06-09
    相关资源
    最近更新 更多