Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 为什么重写引擎规则不起作用?_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess 为什么重写引擎规则不起作用?

.htaccess 为什么重写引擎规则不起作用?,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我试图理解如何使用.htaccess文件重写URL 到目前为止,我发现最容易消化的信息是,我正试图使它适应我自己的需要,但迄今为止没有成功 我有这个网址: http://www.example.com/contenido.php?id=19 我现在想把它变成: http://www.example.com/contenido/19 我已尝试使用.htaccess文件: Options +FollowSymlinks RewriteEngine on RewriteRule ^contenid

我试图理解如何使用.htaccess文件重写URL

到目前为止,我发现最容易消化的信息是,我正试图使它适应我自己的需要,但迄今为止没有成功

我有这个网址:

http://www.example.com/contenido.php?id=19
我现在想把它变成:

http://www.example.com/contenido/19
我已尝试使用.htaccess文件:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^contenido/([0-9]+) http://www.example.com/contenido.php?id=$1 [NC]
当我尝试清除url时,会出现“未找到服务器”错误

如有任何见解,将不胜感激

请注意,
RewriteEngine
在我的Apache服务器中处于启用状态。

在获得了一些帮助后,我找到了一个解决方案

以防万一,我会把它贴在这里:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^contenido/(\d+)*$ ./contenido.php?id=$1

在重写目录的所有内容时,无需测试页面是否存在

您可以使用:

Options +FollowSymLinks
RewriteEngine On

# To externally redirect contenido.php?id=nnn to contenido/nnn
RewriteCond %{THE_REQUEST} \s/+contenido\.php\?id=([^\s&]+) [NC]
RewriteRule ^ /contenido/%1 [R=301,L,NE]

# To internally rewrite contenido/nnn to contenido.php?id=nnn
RewriteRule ^contenido/(\d+/?)?$ contenido.php?id=$1 [NC,L]