如何在没有重定向的情况下更改URL?

时间:2016-01-24 16:14:47

标签: regex apache .htaccess url url-rewriting

我正面临重写网址问题。

当前网站网址:

testwebsite.com/dev/films.php?id=test

我想:

testwebsite.com/dev/test

我尝试了太多的htaccess更改,但它无法正常工作。

我认为下面必须有效

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^dev/([0-9]+)-([a-z]+)/ http://testwebsite.com/dev/films.php?id=$1 [NC]

不幸的是,我找不到404页面。

当我删除htaccess并尝试

testwebsite.com/dev/films/test

它正在运作。我没有c面板访问权限。是否有服务器端重定向?

我不知道是什么问题?我如何解决

2 个答案:

答案 0 :(得分:0)

您必须确保mod_rewrite正在您的Apache服务器上运行。 您还可以在发送任何HTML之前通过向浏览器发送标头信息来使用服务器端代码重定向 例如,这就是你在PHP中如何做到这一点。

PHP redirect

答案 1 :(得分:0)

我们开始,将其设置为 / dev / 目录中的.htaccess文件

<IfModule mod_rewrite.c>
  RewriteEngine on
  #RewriteBase /dev/

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteCond %{REQUEST_FILENAME} !\.(css|js|jpeg|jpg|gif|png|bmp)$
  RewriteRule ^(.*)$ index.php?id=$1 [L,B,QSA]
</IfModule>

可能需要根据您的服务器设置取消注释 RewriteBase