【问题标题】:Friendly URLs htaccess Rewrite Rule Regex [closed]友好的 URL htaccess 重写规则正则表达式 [关闭]
【发布时间】:2013-02-18 16:01:13
【问题描述】:

我试图弄清楚为什么我的 htaccess 文件中的重写规则没有将 URL 更改为更“SEO 友好的 URL”。

这是我的意思的一个例子:

我想从这里开始:

www.mydomain.com/Folder/post.php?url="how-to-make-me-a-happy-camper"

对此:

www.mydomain.com/Folder/how-to-make-me-a-happy-camper

或者这个:

www.mydomain.com/Folder/post/how-to-make-me-a-happy-camper

这是我的 htacess 代码:

RewriteEngine on
RewriteRule ^post/([a-zA-Z0-9-/]+)$ /post.php?url=$1

或者没有帖子/

我似乎无法使正则表达式工作,因为当我点击一个链接时,它会带我到 www.mydomain.com/Folder/post.php?url=how-to-make-me-a-happy-camper.

【问题讨论】:

    标签: regex apache .htaccess url-rewriting friendly-url


    【解决方案1】:

    虽然这个问题令人困惑(描述与重写规则所指示的相反)并且没有所有必需的信息,但您可以在根目录中的一个 .htaccess 文件中尝试:

    Options +FollowSymlinks -MultiViews
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} !post\.php             [NC]
    RewriteCond %{REQUEST_URI} ^/Folder               [NC]
    RewriteRule ^.*/([^/]+)/? /Folder/post.php?url=$1 [L]
    

    静默地图

    http://www.mydomain.com/Folder/post/anything

    http://www.mydomain.com/Folder/anything

    http://www.mydomain.com/Folder/post.php?url=anything

    字符串 postanything 假定为可变,而 Folder 和脚本名称 (post.php) 假定为固定。

    对于永久且可见的重定向,请将 [L] 替换为 [R=301,L]

    【讨论】:

    • 它工作得很好,只是所有的 css 都搞砸了。知道可能是什么原因造成的吗?提前非常感谢。
    • 那是因为路径不同。您应该使用绝对路径或在页面标题中包含 URI 基址:<base href="/whatever"> 在 标记之间。
    • 完美,成功了。非常感谢!
    【解决方案2】:

    在您的 htaccess 文件中使用 RewriteBase 选项。

     RewriteBase / #( or if your document root in a subfolder named Folder: /Folder/ )
    

    并且您应该添加两个 RewriteCondition,因此您的 .htaccess 文件(它不会连接到您的主题,但如果您使用 apache rewrite_mod 则推荐)应该如下所示:

    RewriteEngine on
    
    RewriteBase /Folder/
    RewriteCond %{REQUEST_FILENAME} !-f # the requested uri does not points to a file
    RewriteCond %{REQUEST_FILENAME} !-d # the requested uri does not points to a directory
    RewriteRule ^post/([a-zA-Z0-9-/]+)$ post.php?url=$1
    

    当然,.htacces 文件应该是您的 post.php 文件所在的位置。 (在这种情况下在名为文件夹的目录中)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多