在名为重写的文件夹中,我有两个文件, .htaccess 和 index.php
<rewrite>
- .htaccess
- index.php
在 .htaccess 我有这个内容
RewriteEngine On
RewriteRule ^([a-z0-9]+)?$ index.php?id=$1 [NC,L]
和 index.php
<?php
echo $_GET['id'];
?>
当我访问 www.domain.com/rewrite/1234时不应该我会得到 1234 的输出?
除此之外,还创建了一个文件 application / x-httpd-php 供下载,其中包含 index.php
我想弄清楚为什么我不能做到这一点。我在这里缺少什么?
更新
我测试了两个Web服务器和本地服务器。最后,它在其中一个Web服务器上运行,这意味着它与配置有关。
我该怎么办呢?
答案 0 :(得分:1)
您的某个服务器可能未激活mod_rewrite。
确保进行测试:
在一个文件夹中制作两个文件: - .htaccess - rewrite.php
在.htacces
put:
RewriteEngine On
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
并在rewrite.php
放置:
<h2 align=center>
<?
if(isset($_GET['link']))
{
if($_GET['link']==1){echo "Link without use mod_rewrite";}
elseif($_GET['link']==2){echo "Congratulations!! You has used Apache's mod_rewrite and works well.";}
else{ echo "Verify the Apache's module mod_rewrite.";}
}
?>
</h2>
<hr>
<head>
<title>Test mod_rewrite in Apache Linux</title>
</head>
<body>
<h1>Test mod_rewrite in Apache Linux</h1>
<p><a href="rewrite.php?link=1">Link one </a> = rewrite.php?link=1</p>
<p><a href="link2.html">Link two</a> = link2.html</p>
<ul>
<li>Test link one</li>
<li>Then test the link two</li>
<li>If with the link two if the link two goes to a not found page then you have not activated the .htaccess or apache mod_rewrite is not working.</li>
</ul>
</body>
</html>