Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用.htaccess从url中删除文件名_Php_.htaccess_Url_Web_Seo - Fatal编程技术网

Php 使用.htaccess从url中删除文件名

Php 使用.htaccess从url中删除文件名,php,.htaccess,url,web,seo,Php,.htaccess,Url,Web,Seo,我想从url中删除文件名和扩展名,我有一个目录(Blogs)和两个文件(Main_Blogs.php)和(Blog.php) localhost/SikandarIqbal.net/blogs/ 当我在目录“Blogs”中打开Main_blog.php时,我得到了上面的url,我可以通过这个htaccess文件得到这个url: DirectorySlash Off DirectoryIndex disabled RewriteEngine on # prevent direct access t

我想从url中删除文件名和扩展名,我有一个目录(Blogs)和两个文件(Main_Blogs.php)和(Blog.php)

localhost/SikandarIqbal.net/blogs/

当我在目录“Blogs”中打开Main_blog.php时,我得到了上面的url,我可以通过这个htaccess文件得到这个url:

DirectorySlash Off
DirectoryIndex disabled
RewriteEngine on
# prevent direct access to PHP files
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule \.php$ - [R=404,L]
# rewrite requests for a directory to index.php
RewriteCond %{REQUEST_FILENAME}/Main_blogs.php -f
RewriteRule ^.*$ $0/Main_blogs.php [L]
当我从Main_blog.php打开一个特定的博客时,url变成

localhost/Sikandariqbal.net/Blogs/Blog.php/My Blog name

我真正想要的是成为什么样的人

localhost/Sikandariqbal.net/Blogs/My Blog name


删除/Blogs/和/My Blog name之间的文件名Blog.php

请帮忙

谢谢

您需要一个额外的规则:

DirectorySlash Off
DirectoryIndex disabled
RewriteEngine on

# prevent direct access to PHP files
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule \.php$ - [R=404,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(Blogs)/page/(\d+)?$ $1/?pn=$2 [L,NC,QSA]

# rewrite requests for a Blogs/Blog.php/<url>
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(Blogs)/([\w-]+)/?$ $1/Blog.php/$2 [L,NC]

# rewrite requests for a directory to Main_blogs.php
RewriteCond %{REQUEST_FILENAME}/Main_blogs.php -f
RewriteRule ^.*$ $0/Main_blogs.php [L]
directorysash Off
目录索引已禁用
重新启动发动机
#防止直接访问PHP文件
RewriteCond%{ENV:REDIRECT_STATUS}^$
重写规则\.php$-[R=404,L]
重写cond%{REQUEST_FILENAME}-D
重写规则^(博客)/页面/(\d+)?$$1/?pn=$2[L,NC,QSA]
#重写对Blogs/Blog.php的请求/
重写cond%{REQUEST_FILENAME}-D
重写规则^(博客)/([\w-]+)/?$$1/Blog.php/$2[L,NC]
#将目录请求重写为Main_blogs.php
RewriteCond%{REQUEST_FILENAME}/Main_blogs.php-f
重写规则^.*$$0/Main_blogs.php[L]

未找到其不工作错误对象!在此服务器上找不到请求的URL。如果您手动输入URL,请检查拼写并重试。如果我手动更改URL并将其调整为htaccess中的设置,则正常工作,但当我通过锚打开时,它会自动添加tht文件名,,现在,这是锚需要什么样的变化才能正常工作。如果我添加像mysite/blogs/my blog name这样的url,htaccess u会让我正常工作。。。但是有了锚,它就不会变成url,也不会工作。我用过这个,我不知道它现在是怎么工作的。