如何将URL从GET变量更改为虚构目录

时间:2014-04-02 09:52:30

标签: php .htaccess redirect directory

网站中的所有链接都是一个变量。用户始终打开index.php并提供不同的get变量,这些变量定义了不同的内容。

示例: 主页是example.com/?p=1 联系页面是example.com/?p=7

现在我希望网址看起来像example.com/contact。由于页面数量不是静态的,我无法为每个页面创建目录。

我可能需要一种方法将index.php(example.com?p=3)的内容导入到一个不存在的路径(example.com/new-path)。

我听说有一种方法可以使用.htaccess文件来解决这个问题。

1 个答案:

答案 0 :(得分:1)

我不是.htaccess / mod_rewrite专家,但刚发现这个可能对你有用。请注意,您必须为要重定向的每个页面提供一个条目,因为系统本身不会知道数字和页面之间的关系。您可能需要尝试删除index.php

# Original URL: 
# http://www.example.com/index.php?p=1

# Desired destination URL:
# http://www.example.com/path-to-new-location/

# .htaccess syntax:

RewriteEngine on
RewriteCond %{QUERY_STRING} p=1
RewriteRule ^index\.php$ /path-to-new-location/? [L,R=301]
# Redirect URLs with query parameters (files placed in subdirectory)

注意,#是评论的标志,该行上的任何内容(灰色)都将被忽略,其唯一目的是为您提供信息/评论代码。

来源(第52-63行):Common .htaccess Redirects - Gist