htaccess url rewrite,remove querystring and file e

2019-09-03 15:55发布

问题:

my current url is something like:

http://something.somedomain.com/about_us/profile.php?tab1=about_us

a more complicated on is: http://something.somedomain.com/exchange_hosting/feature/outlook_web_access.php?tab1=exchange_hosting&tab2=feature&tab3=outlook_web_access

i want to make them shorter:

http://something.somedomain.com/about_us/profile http://something.somedomain.com/exchange_hosting/feature/outlook_web_access

my .htaccess

#################################
# Directory Indexes             #
#################################
DirectoryIndex index.php

#########################################
# REWRITE RULES                         #
#########################################
RewriteEngine On
RewriteBase /

Options +FollowSymlinks
<IfModule mod_rewrite.c>

#not a file
RewriteCond %{REQUEST_FILENAME} !-f

#not a dir
RewriteCond %{REQUEST_FILENAME} !-d

#this dosen't work
#RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ /$1.php?tab1=$0&tab2=$1

</IfModule>

# END #

回答1:

Try following for two sizes. For more lengthier url you have to write more such rules.

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ $1/$2.php?tab1=$1&tab2=$2 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ $1/$2/$3.php?tab1=$1&tab2=$2&tab3=$3 [L]