我是学习HTACCESS的新手,我正在努力研究网站网址,使其更加“seo友好”并正确加载。我已经尝试过搜索我需要指向正确方向的东西,但似乎所有东西都是“wordpress”,这是一个自定义构建的网站。
这是我的问题。这个网站有一个以前的开发人员,事情是一团糟,我花了无数个小时清理网站,他建立了网站,以显示这样的网址。 “www.sitename.com/about-us.php”
我对htaccess非常熟悉,知道如何删除.php的尾随扩展名,甚至可以正确显示尾随变量,最后不需要尾随斜杠,如:“sitename.com/about-us?contact =真“
我能够通过这样的网址加载博客视图页面:“sitename.com/posts/post-name-here/”。这个确实需要尾部斜杠。
我正在努力实现的是使url字符串能够正常处理几个页面的尾随变量,例如register,apply等。所以这些url就是这样的。 “sitename.com/auth/apply”或“sitename.com/auth/register”
我的问题是网址最后必须有一个尾部斜杠,否则它不会加载。
另外,添加尾随变量只有在这样格式化时才有效:“sitename.com/auth/apply/?application=submitted”
我希望它看起来更像这样。 “sitename.com/auth/apply?application=submitted”,没有尾部斜杠。但我找不到如何做到这一点。
这是我的.htaccess片段。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^posts\/(.*)/$ /view-post.php?post=$1 [QSA,NC,L]
RewriteRule ^auth\/(.*)/$ /auth-action.php?action=$1 [QSA,NC,L]
RewriteRule ^([^\.]+)$ $1.php [NC,L]
有人可以帮助我,还是指向正确的方向?
答案 0 :(得分:1)
这应该是您想要的。
#Options +FollowSymLinks
Options -Indexes
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*) index.php [QSA,NC,L]
答案 1 :(得分:0)
尝试在.htaccess
中使用以下内容。这将从您的网址中删除尾随斜杠。
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [R=302,L]
确保在测试之前清除缓存。您会注意到我设置了R=302
而不是301
。这使其成为临时重定向用于测试目的。如果您对重定向感到满意,请将其更改为301
以使其永久化。