繁体   English   中英

htaccess漂亮的网址

[英]htaccess to pretty url

我正在尝试将“漂亮” URL应用于我的网站。

即: localhost/chess/game.php?id=10

localhost/chess/game/10

这是我的htaccess:

Options +FollowSymLinks
RewriteEngine On

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

RewriteBase /chess/
RewriteRule ^games$ games.php
RewriteRule ^new$ newgame.php
RewriteRule ^game/(\d+)*$ game.php?id=$1

它适用于游戏和新游戏,但对于游戏来说,它显示的页面没有样式,并显示错误“没有游戏”

我该如何修复此htaccess? 我需要更改读取get的php文件吗?

样式错误可能是由于您用于样式的路径所致。

如果您使用的是相对路径: styles/css.css则在主页上可以正常工作,但是,如果您从/game/访问此文件,则浏览器将在game/styles/css.css寻找该文件

假设您可以通过网站的根目录访问样式,则可以在CSS路径的开头添加/ ,以便浏览器从根目录路径中提取样式。

示例: /styles/css.css

这应该在您的/chess/.htaccess文件中:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /chess/

RewriteRule ^games/?$ games.php [L]
RewriteRule ^new/?$ newgame.php [L]

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^game/(\d+)/?$ game.php?id=$1 [L,QSA]
  • 另外,请确保在CSS,JS,图像文件中使用绝对路径,而不要使用相对路径。 这意味着您必须确保这些文件的路径以http://或斜杠/开头。

  • 您也可以尝试将其添加到页面的HTML标头中: <base href="/" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM