【问题标题】:Generator URL Friendly SEO PHP with .htaccess生成器 URL 友好的 SEO PHP 与 .htaccess
【发布时间】:2015-10-13 17:03:02
【问题描述】:

所以我想创建一个带有隐藏变量的 URL Friendly,看起来像这样:

website.dev/en/page/detail.html(工作,展示内容)

.htaccess 文件

Options +FollowSymLinks -MultiViews


RewriteEngine on
RewriteBase /

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/(.*)$ index.php?lang=$1&page=$2&detail=$3 [L,QSA,NC]
RewriteRule ^([^/]+)/([^/]+)/(.*)$ index.php?lang=$1&page=$2 [L,QSA,NC]
RewriteRule ^([^/]+)/(.*)$ index.php?lang=$1 [L,QSA,NC] 

php 文件:

$_GET['lang']); // en
$_GET['page']); // page
$_GET['detail']); // detail.html

所以,页面返回错误状态 500,但显示内容
http://i.stack.imgur.com/Qgv5m.png

我该如何解决这个问题?

【问题讨论】:

    标签: php regex apache .htaccess mod-rewrite


    【解决方案1】:

    你可以使用:

    Options +FollowSymLinks -MultiViews
    RewriteEngine on
    RewriteBase /
    
    # skip all files and directories from rewrite rules below
    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]
    
    RewriteRule ^([^/]+)/([^/]+)/([^/]+)/(.+)$ index.php?lang=$1&page=$2&detail=$3 [L,QSA]
    RewriteRule ^([^/]+)/([^/]+)/(.+)$ index.php?lang=$1&page=$2 [L,QSA]
    RewriteRule ^([^/]+)/(.+)$ index.php?lang=$1 [L,QSA]
    

    【讨论】:

    • 不起作用 :( i.imgur.com/ZiAo6Au.png 并且按照该规则,之前的文件夹也不起作用
    • 检查您的 error.log 并粘贴您获得的 500 错误的确切错误日志。
    • 这意味着您没有查看正确的文件。每 500 个记录在 Apache error.log 中
    • 我找到了日志文件,但该类型的错误为空。但是当将 PHP 5.6 更改为 PHP 5.5.24 时解决了,但是为什么在新版本的 PHP 中会发生这种情况你有什么想法吗?
    • 非常感谢 :) 您的版本更好,但仅适用于长 URL 我的拆分 URL 工作
    猜你喜欢
    • 2011-05-09
    • 2017-02-13
    • 2012-08-21
    • 2013-04-28
    • 2011-05-29
    • 2013-01-22
    • 2013-02-03
    • 2015-01-13
    • 2015-03-17
    相关资源
    最近更新 更多