- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的主页的内容是根据使用 slug“home”对数据库的查询提取的。例如,如果我在地址栏中输入 example.com/home,它会根据看到的“/home”查询数据库并提取正确的内容(使用变量“$path”)。 那部分工作正常。
我还有一个功能,可以将任何未知的 slug 直接重定向到主页。如果我输入 example.com/foo 并且表中没有对应的“foo”记录,它将只提供 index.php。这是函数:
if(!isset($path['slug']) || $path['slug'] == '') {
header('Location:home');
}
我看过this回答和this答案似乎很接近,但并不能完全满足我的需要。我希望“example.com/home”在地址栏中显示为“example.com”。
此外,这是我的 .htaccess:
# GZIP for speed
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</ifmodule>
# Removes any canonicalization issues
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)$ "http://example.com/$1" [R=301,L]
# RewriteRule ^/$ /home [L]
# RewriteEngine on
# RewriteBase /
# RewriteRule ^& http://localhost/example.com/home [L,R=301]
# RewriteRule / http://localhost/example.com/home [L,R=301]
# Restrict access to a variety of private file types
<FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
Order Allow,Deny
Deny from all
</FilesMatch>
# Disable directory browsing
Options All -Indexes
# Prevent folder listing
IndexIgnore *
# Let index.php handle all requests
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
</IfModule>
# Dump referrer spam
<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTP_REFERER} (?:o-o-6-o-o|bestwebsitesawards|s.click.aliexpress|simple-share-buttons|see-your-website-here|forum.topic55198628.darodar|hulfingtonpost|ilovevitaly|priceg|blackhatworth|semalt.semalt|kambasoft|buttons-for-website|BlackHatWorth|7makemoneyonline)\.com [NC,OR]
RewriteCond %{HTTP_REFERER} (?:lomb|lombia|econom|lumb)\.co [NC,OR]
RewriteCond %{HTTP_REFERER} (?:cenoval|Iskalko)\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} (?:smailik|humanorightswatch)\.org [NC,OR]
RewriteCond %{HTTP_REFERER} (?:ranksonic|savetubevideo)\.info [NC]
RewriteRule ^ – [F]
</IfModule>
# Set the server administrator email
SetEnv SERVER_ADMIN admin@example.com
# Serve custom error pages
ErrorDocument 400 /template/400.html
ErrorDocument 401 /template/401.html
ErrorDocument 403 /example.com/template/403.php
ErrorDocument 404 /example.com/template/404.php
ErrorDocument 500 /template/500.html
预先感谢您的帮助。
最佳答案
您需要从规则模式中删除前导斜杠,前导斜杠在 htaccess 上下文中不匹配。
改变这一行:
RewriteRule ^/$ /home [L]
到
RewriteRule ^$ /home [L]
或者另一个解决方案是 DirectoryIndex
在“RewriteEngine On”指令上方添加这一行
DirectoryIndex /home
这将加载
example.com/
作为
example.com/home.
关于php - 想让 'example.com/home'在地址栏显示为 'example.com',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33963311/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!