htaccess,MySQL DB和不存在的文件

时间:2011-08-06 01:00:06

标签: apache .htaccess mod-rewrite

我在MySQL数据库中有内容,我想在我的主页上显示,具体取决于用户来自的URL。我不希望mod_rewrite更改我的URL,而是要执行以下操作:

  • 保留网址(即mysite.com/demolink2
  • 检查页面是否存在,如果不存在,则重定向到index.php,传递“demolink2”变量(基本上是最后一个斜杠后面的URL字符串末尾)
  • index.php方面我将能够提供内容,但同样,我不希望用户将网址更改为mysite.com/index.php?id=demolink2,而是让mysite.com/index.php页面保持mysite.com/demolink2,直到他们点击网站中指向真实网页的网址。

这是我当前的.htaccess,它完成了第一位;即,它将查看该页面是否已经存在,如果没有,则将用户引导至索引,但是我已经完成了重写。

任何帮助/评论都将不胜感激。

htaccess文件:

Options +FollowSymLinks
RewriteEngine on

RewriteBase /

RewriteRule ^$ /index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php [L]

1 个答案:

答案 0 :(得分:0)

只需将最后一行更改为

即可
RewriteRule (.*) /index.php?id=$1 [QSA,L]

浏览器中的URL将保持与重写(内部重定向)相同,而不是正确的3xx代码重定向。

  • 如果请求mysite.com/demolink2,您的脚本会将其视为/index.php?id=demolink2;
  • 如果它是mysite.com/hello/kitten,则脚本会看到index.php?id=hello/kitten;
  • 添加了
  • QSA标志以保留现有查询字符串。