如何从旧网址重写为新网址

时间:2014-08-12 13:02:31

标签: php apache .htaccess mod-rewrite

任何人都有解决方案"如何从http://domain-name.com/index.php?action=Abu-Dhabi-Airport-Free-Zone-ADAFZ重写为http://domain-name.com/Abu-Dhabi-Airport-Free-Zone-ADAFZ"使用.htaccess文件。

2 个答案:

答案 0 :(得分:0)

你可以在 mod_rewrite 的帮助下做到这一点,有很多在线生成器,其中一个给了我这个解决方案:

RewriteEngine On
RewriteRule ^([^/]*)$ /index.php?action=$1 [L]

答案 1 :(得分:0)

以下解决方案适用于vhost和非vhost配置,并考虑到静态文件和/或文件夹的存在。

在php应用程序中,简单地使用$ _SERVER [' REQUEST_URI']来做任何你想做的事情。它不需要参数。其他任何东西都不需要重写,因为PHP应用程序决定如何处理URL。

# MAGIC: automatically determine correct rewriteRule regardless of virtualdocumentroot setting.
<IfModule mod_vhost_alias.c>
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}:::%{DOCUMENT_ROOT}%{REQUEST_URI} ^(.+):::\1
    RewriteRule ^(.*)$ index.php [QSA,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}:::%{DOCUMENT_ROOT}%{REQUEST_URI} !^(.+):::\1
    RewriteRule ^(.*)$ /index.php [QSA,L]
</IfModule>

# All this is useless if mod_vhost_alias is not active
<IfModule !mod_vhost_alias.c>
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>