我无法将硬编码的网址重定向到漂亮的网址。
我想访问以下网址:
mysite.com/index.php?page=links
导航至:
mysite.com/links/
我已经阅读了关于这个主题的大量其他问题,但它们都与通过字符串传递的动态数据有关。我只想要一个简单的htaccess RewriteRule,它只会影响这个特定的url而不会产生任何其他问题。
我尝试了很多东西,但没有任何工作,每次都是404。
示例:
RewriteEngine On
RewriteRule ^links/ index.php?page=links
任何帮助表示感谢。
编辑 - 对提供的建议答案作出反应。这完全不是我想要做的。我不是试图将一个页面重定向到另一个页面,我只是想在浏览器中重写URL。
答案 0 :(得分:0)
我找到了解决方案。 apache2.conf不允许覆盖,所以我添加了以下内容。
<Directory /var/www/html/public/>
Options Indexes FollowSysmLinks
AllowOverride All
Require all granted
</Directory>
这样安全吗?
答案 1 :(得分:0)
的index.php
<?php
define('BASE_URL', '/mysite.com/');
if (isset($_GET['page'])) {
echo "query string ==> $_SERVER[QUERY_STRING]" . "<br />";
} else {
echo "Not query 'page'" . "<br />";
}
echo "url ==> $_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]" . "<br />";
?>
<a href="<?php echo BASE_URL; ?>">index</a><br/>
<a href="<?php echo BASE_URL; ?>1">1</a><br/>
<a href="<?php echo BASE_URL; ?>2">2</a><br/>
<a href="index.php?page=3">3</a><br/>
的.htaccess
RewriteEngine On
#RegEx pattern matching => query string
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=$1