Php 在浏览器中显示漂亮的URL

Php 在浏览器中显示漂亮的URL,php,.htaccess,mod-rewrite,url-rewriting,friendly-url,Php,.htaccess,Mod Rewrite,Url Rewriting,Friendly Url,我可以创建以下URL: example.com/video1 重定向到: example.com/video/video1.php 但我希望它能显示: example.com/video1 在浏览器中,但它不是 它正在显示: example.com/video/video1.php 当我转到URL时: example.com/video/video1.php 它应该显示 example.com/video1 在浏览器中,但它正在显示: example.com/video

我可以创建以下URL:

  • example.com/video1
重定向到:

  • example.com/video/video1.php
但我希望它能显示:

  • example.com/video1
在浏览器中,但它不是

它正在显示:

  • example.com/video/video1.php
当我转到URL时:

  • example.com/video/video1.php
它应该显示

  • example.com/video1
在浏览器中,但它正在显示:

  • example.com/video/video1.php
我该怎么做

以下是我正在使用的:

RewriteEngine On
RewriteRule ^video1 /videos/video1.php [QSA,NC,L]
RewriteRule ^/videos/video1.php /video1  [R=301,L]
你试过了吗

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yoursite.com
RewriteRule (.*) http://www.yoursite.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html HTTP/
RewriteRule ^index.html$ http://www.yoursite.com/ [R=301,L]
资料来源:


您忘了在正则表达式中添加结账
$
。 请试试这个:

RewriteEngine On
RewriteRule ^/video1$ /videos/video1.php [QSA,NC,L]
RewriteRule ^/videos/video1.php$ /video1  [R=301,L]
而不是

RewriteEngine On
RewriteRule ^video1 /videos/video1.php [QSA,NC,L]
RewriteRule ^/videos/video1.php /video1  [R=301,L]

您可以在/root/.htaccess

RewriteEngine on
#1--Redirect from "/videos/foo.php" to "/foo"--#
RewriteCond %{THE_REQUEST} /videos/([^.]+)\.php [NC]
RewriteRule ^ /%1 [NE,NC,L,R]
#2--Internally map "/foo" to "/videos/foo.php--#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /videos/$1.php [NC,L]

测试前请清除浏览器缓存。

关于此主题,已经有几个问题。请检查:,关于你的“反向修改”,你应该检查一下:@mapek我知道有很多类似的问题,我尝试了所有的建议,但仍然不起作用。我已经在这个问题上花了这么多的时间,这个问题看起来很简单。每次我试图发布一个问题来寻求帮助时,人们都会用一个链接来回答另一个我已经看到并尝试过的问题。我很沮丧,因为我不知道我做错了什么。由于某些原因,我无法在浏览器地址中显示漂亮的URLbar@mapek我的URL不是动态URL。我看到的所有问题都是关于动态URL的。好的,我会尽力帮助你。请检查我添加的答案。