Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
将url更改为不包含/index.php_Php_.htaccess_Url Rewriting - Fatal编程技术网

将url更改为不包含/index.php

将url更改为不包含/index.php,php,.htaccess,url-rewriting,Php,.htaccess,Url Rewriting,我有一个简单的配置文件系统,它有一个URL重写,可以更改URL,如: www.domain.com/profile.php?id=user 致: 使用: RewriteEngine on RewriteRule ^([A-Za-z0-9]+)$ profile.php?id=$1 [L] 也就是说,我将如何更改URL: www.domain.com/something/index.php 致: 在不中断配置文件URL设置的情况下?我会把重写放在.htaccess文件的更高位置吗?感谢您帮

我有一个简单的配置文件系统,它有一个URL重写,可以更改URL,如:

www.domain.com/profile.php?id=user 
致:

使用:

RewriteEngine on
RewriteRule ^([A-Za-z0-9]+)$ profile.php?id=$1 [L]
也就是说,我将如何更改URL:

www.domain.com/something/index.php
致:


在不中断配置文件URL设置的情况下?我会把重写放在.htaccess文件的更高位置吗?感谢您帮助新手解决问题。

如果
某个东西
不是常量,则不可能做到这一点,您需要使用另一个url模式,如
www.domain.com/page/something
。但是,如果
`something
为常量,则可以使用

RewriteEngine on
RewriteCond !^something [NC]
RewriteRule ^([A-Za-z0-9]+)$ profile.php?id=$1 [L]

RewriteCond ^something [NC]
RewriteRule ^something something/index.php [L] 
RewriteEngine on
RewriteRule ^page/([A-Za-z0-9]+)$ $1/index.php [L]
如果您使用不同的url模式,如

www.domain.com/page/something
您可以使用

RewriteEngine on
RewriteCond !^something [NC]
RewriteRule ^([A-Za-z0-9]+)$ profile.php?id=$1 [L]

RewriteCond ^something [NC]
RewriteRule ^something something/index.php [L] 
RewriteEngine on
RewriteRule ^page/([A-Za-z0-9]+)$ $1/index.php [L]

您可以使用此规则从以下任何位置删除
/index.php

DirectoryIndex index.php
RewriteEngine On

RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*?)index\.php$ /$1 [L,R=301,NC,NE]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z0-9]+)/?$ profile.php?id=$1 [L,QSA]

尝试重写规则^something something/index.php[L]
something
是常量或可以是任何内容?它可能是www.domain.com/forums/index.php或www.domain.com/questions/index.php。php@Kragalon这是不可能做到的,您需要使用不同的url模式。我想我明白你的意思,但我认为这是可能的。作为一个例子,它引用了完全不同的php脚本,但是它们有相同的布局?你需要按程序检查它。如果你知道一种确定某个用户或目录的方法,我可以告诉你解决方法。正如我上面所说的,如果某个东西是常量,那么它是可能的。或者,如果您有目录列表,这也是可能的。你需要给rewrite cond才能这样做,这样你的答案就行了,如果我说,想让“某物”成为“论坛”,比如:www.domain.com/forums/index.php变成www.domain.com/forums?顺便说一句,谢谢你的帮助。如果你说
www.domain.com/page/forums/index.php
,我的答案是有效的。为了让你的条件生效,我需要一个目录列表,作为一个目录,而不是用户配置文件。这些链接你有gavme我可能使用恒定的url模式。我的意思是,站点所有者实现了一个带有url映射的控制器。当用户转到此url时,自定义控制器工作。但是在这个url中,
http://www.twitch.tv/lassiz
url重写工作正常。在这种情况下,有一个命令。首先是控制器映射,如果找不到任何匹配项,它会转到用户配置文件。似乎我已经得到了我想要的:RewriteRule ^forums/$forums/index.php上的RewriteEngine[L]我愚蠢吗?