大家好!
我的网站上有多名员工,他们有各自的项目。我有一个问题,因为网站设置如下:
site.com/myownproject1
site.com/myownproject2
site.com/john/projectbyjohn1
site.com/john/projectbyjohn2
site.com/james/projectbyjames1
site.com/james/projectbyjames2
当有人试图访问没有名称前缀的目录时,我想设置我的.htaccess文件重写到那些文件夹,所以
site.com/john/projectbyjohn2
可以通过
访问site.com/projectbyjohn2
这就是我的.htaccess currenlty的样子:
DirectoryIndex index.php index.html
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
#Lots of stuff that does not matter
编辑:截至目前的完整.htaccess:
DirectoryIndex index.php index.html
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
Header set Access-Control-Allow-Origin "*"
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [S=2]
RewriteCond %{DOCUMENT_ROOT}/mitch/$1 -d [OR]
RewriteCond %{DOCUMENT_ROOT}/mitch/$1 -f
RewriteRule ^(.*)$ /mitch/$1 [L]
ErrorDocument 400 /ErrorDocument.php?err=400
ErrorDocument 401 /ErrorDocument.php?err=401
ErrorDocument 402 /ErrorDocument.php?err=402
ErrorDocument 403 /ErrorDocument.php?err=403
ErrorDocument 404 /ErrorDocument.php?err=404
ErrorDocument 405 /ErrorDocument.php?err=405
ErrorDocument 406 /ErrorDocument.php?err=406
ErrorDocument 407 /ErrorDocument.php?err=407
ErrorDocument 408 /ErrorDocument.php?err=408
ErrorDocument 409 /ErrorDocument.php?err=409
ErrorDocument 410 /ErrorDocument.php?err=410
ErrorDocument 411 /ErrorDocument.php?err=411
ErrorDocument 412 /ErrorDocument.php?err=412
ErrorDocument 413 /ErrorDocument.php?err=413
ErrorDocument 414 /ErrorDocument.php?err=414
ErrorDocument 415 /ErrorDocument.php?err=415
ErrorDocument 416 /ErrorDocument.php?err=416
ErrorDocument 417 /ErrorDocument.php?err=417
ErrorDocument 500 /ErrorDocument.php?err=500
ErrorDocument 501 /ErrorDocument.php?err=501
ErrorDocument 502 /ErrorDocument.php?err=502
ErrorDocument 503 /ErrorDocument.php?err=503
ErrorDocument 504 /ErrorDocument.php?err=504
ErrorDocument 505 /ErrorDocument.php?err=505
答案 0 :(得分:0)
试试这个
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [S=2]
RewriteCond %{DOCUMENT_ROOT}/john/$1 -d [OR]
RewriteCond %{DOCUMENT_ROOT}/john/$1 -f
RewriteRule ^(.*)$ /john/$1 [L]
RewriteCond %{DOCUMENT_ROOT}/james/$1 -d [OR]
RewriteCond %{DOCUMENT_ROOT}/james/$1 -f
RewriteRule ^(.*)$ /james/$1 [L]
如果目录/文件已存在于根目录中,则第一个规则会跳过以下两个规则。接下来的两个只根据它在/john
或/james
内找到的位置解析文件/目录。
请注意,如果John和James都决定将文件或子目录命名为相同,那么我们就会陷入困境。在我们的案例/john
中,首先定义的规则将在这种情况下取代。