1
<h1><a href="profile.php?id=' . $id . '" target="_self">' . $name. '</a></h1>

以上是指向我的 profile1.php 文件的参考。该文件称为 index.php 。它目前显示的网址是这样的:

http://www.domain.com/interact/profile1.php?id=36

我已经尝试实现 .htaccess 文件来重写 url。我尝试了很多组合,其中大多数都给出了 500 错误,有些没有重写 url。这是我使用的 .htaccess 文件,它不会更改 url。

我希望网址看起来像http://www.domain.com/interact/profile/36

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ profile1.php/$1 [QSA,L]
</IfModule>

我知道这是一个非常基本的问题,但我似乎坚持并阅读了基本教程,但无法正确实施。

文件 index.php 、profile1.php 和 .htaccess 位于名为 interact 的文件夹中。

告诉我 php 或 .htaccess 文件所需的任何更改。

4

2 回答 2

1

它目前显示的网址是这样的:http://www.domain.com/interact/profile1.php?id=36

...

我希望网址看起来像http://www.domain.com/interact/profile/36

第1步:

更改您的内容以具有如下链接:

<h1><a href="profile/' . $id . '" target="_self">' . $name. '</a></h1>

这样,当您单击链接时,将出现在 URL 地址栏中的 URL 将如下所示:http://www.domain.com/interact/profile/36

第2步:

然后您需要使用这些规则在内部将其改回:

RewriteEngine On
RewriteBase /interact/
RewriteRule ^profile/([0-9]*) profile1.php?id=$1 [L,QSA]

为了将任何外部链接(例如谷歌索引机器人)指向新的 URL,您还需要添加这些:

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /interact/profile1\.php\?id=([0-9]*)
RewriteRule ^ http://www.domain.com/interact/profile/%2 [L,R=301]
于 2012-09-29T19:36:54.123 回答
0

试试这个

  RewriteRule ^interact/profile1.php/(.*)$ interact/profile1.php?id=$1 [L]

我不知道 QSA 修饰符是做什么的,所以我将其删除。如果您知道什么,请使用它)

于 2012-09-29T19:16:47.957 回答