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

Php 地址栏位置的Apache重写规则,php,apache,.htaccess,mod-rewrite,seo,Php,Apache,.htaccess,Mod Rewrite,Seo,我目前正在尝试制定一个重写规则,该规则将显示在地址栏中,但实际上是从中读取的。我尝试了以下方法: <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^index\.php - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FIL

我目前正在尝试制定一个重写规则,该规则将显示在地址栏中,但实际上是从中读取的。我尝试了以下方法:

<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>

选项+FollowSymLinks
重新启动发动机
重写基/
重写规则^index\.php-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^([a-z0-9\-]+)/?$/?$.php?页面=$1[L,NC]
不过,URL仍然显示为

基本上,我想我想要一个SEO风格的链接。

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

如您所见,每个“页面”都在
()
之间的规则中硬编码

您还可以使其更“动态”:

这将自动使用任何字母(我添加了破折号和数字,如索引、联系人或联系我们),并将其用作“操作”。因此,在脚本中,您可以检查其中一个是否不被接受(例如某人键入:not-a-good-page),然后您可以重定向到404。这样,您的脚本就可以控制逻辑,而不是.htaccess。

以下是您可以使用的(静态版本):

如您所见,每个“页面”都在
()
之间的规则中硬编码

您还可以使其更“动态”:


这将自动使用任何字母(我添加了破折号和数字,如索引、联系人或联系我们),并将其用作“操作”。因此,在脚本中,您可以检查其中一个是否不被接受(例如某人键入:not-a-good-page),然后您可以重定向到404。这样,您的脚本控制的逻辑不是.htaccess。

您只想重定向“主页”、“博客”和“登录”?我现在想重定向“索引”、“博客”、“项目”、“联系人”和“登录”。您只想重定向“主页”、“博客”和“登录”?我想重定向“索引”、“博客”、“项目”、“联系人”,现在,当我尝试使用
$\u GET['page']时当我尝试加载时,它找不到它,是否有一种特定的方法我必须使用它?它应该是:
$\u GET['action']
,如果你想使用
页面
你可以将规则更改为:
重写规则^(index | blogs | projects | contact | login)/?$index.php?页面=$1[L,NC]
我更改了它们,但它仍然不接受我的页面参数。我将
/?$.php?page=$1
从您的规则更改为:
index.php?action=$1
,然后我进入php(当我打印时(\u$get)):
数组([page]=>登录)
for
http://www.domain.com/login
。您的apache配置中还有其他规则吗?当我尝试使用
$\u GET['page']时当我尝试加载时,它找不到它,是否有一种特定的方法我必须使用它?它应该是:
$\u GET['action']
,如果你想使用
页面
你可以将规则更改为:
重写规则^(index | blogs | projects | contact | login)/?$index.php?页面=$1[L,NC]
我更改了它们,但它仍然不接受我的页面参数。我将
/?$.php?page=$1
从您的规则更改为:
index.php?action=$1
,然后我进入php(当我打印时(\u$get)):
数组([page]=>登录)
for
http://www.domain.com/login
。您的apache配置中还有其他规则吗?
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]