繁体   English   中英

.htaccess中的RewriteRule不起作用

[英]RewriteRule in .htaccess doesnt work

我从来没有使用过“漂亮的网址”之类的东西,但是我必须解决这个问题,我也不知道该如何做。 所以我在php中有此功能:

function niceUrl()
{
    // getting variable based on .htaccess
    $request = $_GET['tlederPageId'];
    var_dump($request);
    $vars = explode("/", $request);

    return $vars;
}

并且此var_dump仅打印NULL

这在.htaccess中:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)(.*)/?$ index.php?tlederPageId=$1&%{QUERY_STRING}

而且我不知道该如何工作。 我什至不知道在哪里寻求帮助。 有人可以向我解释吗? 提前致谢。

好吧,让我们分解一下您提供的帖子:“漂亮的网址”:通常定义为SEO友好的网址,描述了两件事

1,特定类别

2,该类别的特定主题

(注意)这并不意味着您的主题必须具有类别

从漂亮的网址上方使用示例一可以包含以下内容: http : //www.animals.com/dogs/

从上方使用示例二,一个漂亮的URL可能包含以下内容: http : //www.animals.com/dogs/bulldogs/

使用上面的“注释”:拥有相对域名不一定必须具有类别才能拥有主题; 类似于: http//www.bulldogs.com/american-bulldogs/

关于您的“ .htaccess”,这一行对我来说很奇怪:

RewriteRule (.*)(.*)/?$ index.php?tlederPageId=$1&%{QUERY_STRING}

具有(.*)(.*)含义与说[ANYTHING + ANYTHING = ANYTHING]相同,尽管您的.htaccess会将任何请求转发到根目录中名为index.php的文件,该文件的$ _GET变量为tlederPageId作为以及所传递的任何其他查询字符串。

然后,确保通过URL进行传递是您的工作,首先通过apache,然后通过php进行验证。

例如:如果您捕获了“ tlederPageId”,并通过PHP对变量进行了一些预处理,并确定URL无效(例如: http : //www.bulldogs.com/boxers/ ),则它是您的负责抛出404,如果有人通过了有效的URL,您将接受该URL为200 OK。 这些需要在php标头中设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM