带有.htaccess的SEO在本地WAMP服务器上不起作用


SEO with .htaccess not working on local WAMP server

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

mod_rewrite活跃在阿帕奇。

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

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

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

或者将.htaccess保留在c:/wamp/www/中,然后使用此重做RewriteRule

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/被处理。