【问题标题】:Rewriting SEO friendly URLS using https使用 https 重写 SEO 友好的 URL
【发布时间】:2014-10-06 14:38:10
【问题描述】:

我最近设置了一个带有 SSL 证书的域,我想通过 https 而不是 http 访问整个站点。

我目前正在使用 RewriteEngine 和一个名为 page.php 的 php 脚本来处理 URL 参数,以便将正确的页面内容包含在 SEO 友好的 URL 中,如下所示。

www.example.com/page.php?venue=someplace&artist=singer

会变成:

www.example.com/someplace/singer

我的.htaccess 文件包含以下内容

RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ page.php?venue=$1&artist=$2&%{QUERY_STRING} [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ page.php?venue=$1&artist=$2&%{QUERY_STRING} [L]
RewriteRule ^([a-zA-Z0-9_-]+)/$ page.php?venue=$1&%{QUERY_STRING} [L]
RewriteRule ^([a-zA-Z0-9_-]+)$ page.php?venue=$1&%{QUERY_STRING} [L]

通过 https 访问该站点时,重写似乎无法正常工作。用户被定向到我的 404 错误页面。在 .htaccess 文件中的 page.php 之前添加 https://www.example.com/ 不会产生预期的效果。而是将用户转发到https://www.example.com/page.php?venue=test&artist=test。虽然这不是我需要的 SEO 友好 URL,但该 URL 正确加载了页面内容,因此只能假设问题一定出在我的 .htaccess 文件中。

我已经搜索了解决方案,并找到了以下我尝试过的解决方案,包括在我的 .htaccess 中,但没有任何成功。

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [Rs,L]

有没有人可以输入我的.htaccess 文件以使我能够通过 https 访问该站点?

【问题讨论】:

    标签: php .htaccess https


    【解决方案1】:

    保持你的 .htaccess 像这样:

    RewriteEngine On
    RewriteBase /
    
    # enforce https and www
    RewriteCond %{SERVER_PORT} !=443 [OR]
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,NE,R=302]
    
    # skip further rules for files and directories
    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]
    
    # internal rewrite rules
    RewriteRule ^([\w-]+)/([\w-]+)/?$ page.php?venue=$1&artist=$2 [L,QSA]
    RewriteRule ^([\w-]+)/?$ page.php?venue=$1 [L,QSA]
    

    【讨论】:

    • 我将感谢您对此处的反对意见发表评论。这个答案有什么问题吗?
    • 谢谢@anubhava 由于搜索引擎将example.com 和example.com 视为不同的页面,我是否还需要使用301 重定向或者这也能解决这个问题?
    • 检查更新的代码,这将强制执行https 并删除www。一旦这个工作正常,只需将 302 更改为 301。
    • 如果我要保留www,我是否只需将www添加到域名中? @anubhava
    • 希望您能尽快使用它。我可以保证这些规则是正确的并且经过测试。
    猜你喜欢
    • 2015-07-30
    • 1970-01-01
    • 2012-04-26
    • 2021-07-06
    • 2015-01-04
    • 2015-02-14
    • 2018-09-10
    • 2011-03-02
    • 2017-04-01
    相关资源
    最近更新 更多