Apache的重写规则对地址栏的位置

我目前正在做一个重写规则,它会显示在地址栏http://mywebsite.com/login/,但是从http://mywebsite.com/index.php?action=login实际读取。 我已经试过如下:

<IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^index\.php - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-z0-9\-]+)/?$ /?$.php?page=$1 [L,NC] </IfModule>

该网址仍显示为http://mywebsite.com/index.php?action=login,虽然。

基本上,我希望有一个SEO链接样式,我猜。

--------------解决方案-------------

这里是您可以使用的(静态版):

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(index|blogs|projects|contact|login)/?$ index.php?action=$1 [L,NC]

正如你所看到的,每个“页”是硬编码在规则中的()

你也可以使它更“动态”:

RewriteRule ^([a-z0-9\-]+)/?$ index.php?action=$1 [L,NC]

这将自动使用任何字母(我加破折号和数字 - 像指数,联系人或-US),并把它作为“行动”。 因此,在你的脚本,你可以检查,如果不被接受其中之一(例如有人类型:不-一个好的页),则可以重定向到一个404这样的话,你的脚本控制的逻辑不是的.htaccess。

分类:php 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.436 (s). 10 q(s)