Php 在本地WAMP服务器上不使用.htaccess的SEO

Php 在本地WAMP服务器上不使用.htaccess的SEO,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我正在使用PHP/MySQL开发一个前端/后端应用程序。该项目几乎完成了,但我想屏蔽URL上显示的变量,但在我的WAMP本地服务器上有些东西不起作用 mod_rewrite在Apache中处于活动状态 以下我为我们提供了所需的信息: http://127.0.0.1/bookstoreSystem/index.php?page=home&language=en 我想将上面的URL转换为: http://127.0.0.1/bookstoreSystem/en/home/ 我在.hta

我正在使用PHP/MySQL开发一个前端/后端应用程序。该项目几乎完成了,但我想屏蔽URL上显示的变量,但在我的WAMP本地服务器上有些东西不起作用

mod_rewrite
在Apache中处于活动状态

以下我为我们提供了所需的信息:

http://127.0.0.1/bookstoreSystem/index.php?page=home&language=en
我想将上面的URL转换为:

http://127.0.0.1/bookstoreSystem/en/home/
我在.htaccess文件中使用了以下代码:

RewriteEngine on
RewriteRule /^([^/]*)/^([^/]*)/\.php index.php?page=$1&language=$2
除此之外,当我运行此代码并尝试查看站点时,没有任何更改或不工作

实现这一目标的正确方法是什么

/******/

.htaccess位于以下路径上:

c:/wamp/www/
c:/wamp/www/
和项目文件夹

c:/wamp/www/bookstoreSystem

您的代码有点混乱:

RewriteEngine on
RewriteRule /^([^/]*)/^([^/]*)/\.php index.php?page=$1&language=$2
\.php
应该是什么

请尝试以下方法:

RewriteEngine on
RewriteRule     ^([a-z0-9-_]+)/([a-z0-9-_]+)/?$    index.php?page=$1&language=$2 [L]
此外,还不清楚基于此URL将
.htaccess
放置在系统中的什么位置:

http://127.0.0.1/bookstoreSystem/en/home/
因此,最好将捕获的参数移动一个数字;如果
$1
$2
,则改为
$2
$3

RewriteEngine on
RewriteRule     ^([a-z0-9-_]+)/([a-z0-9-_]+)/?$    index.php?page=$2&language=$3 [L]
编辑:原始海报现在显示:

.htaccess位于以下路径上:

c:/wamp/www/
c:/wamp/www/
和项目文件夹

c:/wamp/www/bookstoreSystem
两种解决方案。首先,只需将
.htaccess
放入
c:/wamp/www/bookstoreSystem

或者将
.htaccess
保存在
c:/wamp/www/
中,只需使用重新编写的
重写规则即可:

RewriteEngine on
RewriteRule     ^([a-z0-9-_]+)/([a-z0-9-_]+)/([a-z0-9-_]+)/?$    index.php?page=$2&language=$3 [L]

请注意
^([a-z0-9-\]+)
的三个捕获区域。这将捕获所有三个段,但该规则随后仅使用
$2
$3
。这意味着
bookstoreSystem/
被丢弃,但是
en/home/
被执行。

你能告诉我第一个
^
/^([^/]*)/
中完成了什么吗?这是真的,但我试过很多句子,事实是服务器没有改变url。上次我使用这个:^(+)/(.+)/$index.php?page=$1&language=$2是的,但是你应该尝试
/^([^/]*)/([^/]*)/\.php
?我测试过,但url没有更改。我仍然看到:@m4g4bu搜索引擎优化友好的URL的工作方式,我不相信你能做你要求做的事情。SEO友好的URL采用此
http://127.0.0.1/bookstoreSystem/en/home/
并让它成为幕后的
http://127.0.0.1/bookstoreSystem/index.php?page=home&language=en
。但是我很确定你不能完全摆脱像
http://127.0.0.1/bookstoreSystem/index.php?page=home&language=en
。但是如果我想看到这一点:为什么APACHE没有转换URL?@m4bu APACHE没有转换URL。它将其映射到后台,以便正确设置
页面
语言
。未找到请求的URL/bookstoreSystem/en/home在此服务器上未找到。