1

我正在失去理智。我已经尝试了我能找到的这些板上的每一个建议。

我有一个简单的网址:

www.somedomain.com/!/profile.php?id=1234567

我在 .htaccess 文件中有这个:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
   RewriteRule ^([a-zA-Z0-9]+)(/?)$ profile.php?id=$1 [QSA,L]
</IfModule>

我不明白为什么它不重写为somedomain.com/!/1234567.

4

1 回答 1

0

要在您的问题中准确地执行您想要的操作,即在 /!/ 目录中的 .htacess 文件中,将需要以下内容

RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^[a-zA-Z0-9]+[.]php$ %1 [L]

如果可以,最好不要使用 .htaccess 文件,因为它会影响性能。您可以按如下方式在 VirtualHost 中放置一些东西:

RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^/!/[a-zA-Z0-9]+[.]php$ %1 [L]

或者如果你想对文件名和路径做一些事情:

RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^(/!/[a-zA-Z0-9]+)[.]php$ $0/%1 [L]
于 2012-05-14T11:44:11.537 回答