繁体   English   中英

使用 .htaccess 删除扩展名但保留参数会导致页面无样式

[英]Removing extensions with .htaccess but keeping Parameters causes unstyled page

我正在尝试构建一个用于重定向或“美化” URL 的构造。

我想达到以下结果:

  • 像 domain.com/signup.php 这样的 URL 应该被 domain.com/signup 访问
  • 参数应该像 domain.com/signup/HASH 一样工作将导致 domain.com/signup.php?hash=HASH
  • 如果可能,多个参数应该是可扩展的,如 domain.com/signup/HASH/VERIFIED -> domain.com/signup.php?hash=HASH&status=verified

我目前的做法是

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA]

我尝试了很多,但要么不起作用,要么以无样式的页面结束。 有什么建议?

在您的页面中使用绝对链接。
如果您在页面中使用任何图形或链接,请不要使用“相对链接”。 相反,将所有以http://www.example.com/...开头的链接http://www.example.com/... “绝对链接”。

或者一个相对于根的链接,以/开头的 href 值。

在您的情况下: http://www.example.com/css/Stylesheet.css/css/Stylesheet.css

您还可以在 html 中添加<head> : <base href="/">

如果您只在站点的根目录使用参数,则可以使用:

RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/?$ $1.php [L]

# with one parameter
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/([^/]+)/?$ $1.php?hash=$2 [L,NE,QSA]

# with two parameters
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ $1.php?hash=$2&status=$3 [L,NE,QSA]

暂无
暂无

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

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