删除扩展名并使用traling斜杠添加get值

时间:2015-12-26 15:39:08

标签: php .htaccess url mod-rewrite url-rewriting

要做到这一点:

原始网址 - > localhost/viewprofile.php

重写网址 - > localhost/viewprofile/

我使用了此代码。

# Apache Rewrite Rules
 <IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On
  RewriteBase /

# Add trailing slash to url
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
  RewriteRule ^(.*)$ $1/ [R=301,L]

# Remove .php-extension from url
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME}\.php -f
  RewriteRule ^([^\.]+)/$ $1.php 

# End of Apache Rewrite Rules
 </IfModule>

现在我这样做了

原始网址 - &gt; localhost/viewprofile.php?user_id = 1

重写网址 - &gt; localhost/1/

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ viewprofile.php?user_id=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ viewprofile.php?user_id=$1

但不幸的是我想要这样做

原始网址 - &gt; localhost/viewprofile.php?user_id = 1

重写网址 - &gt; localhost/viewprofile/1/

以及

原始网址 - &gt; localhost/viewprofile.php?username=sean

重写网址 - &gt; localhost/viewprofile/sean/

我有两个Original URLs,我想分别将它们重写为相应的ReWrite URL,如上所述。

任何解决方案?

1 个答案:

答案 0 :(得分:1)

您可以匹配第一个数字(仅限)和另一个(例如)字母数字

ActiveRecord::Base