如果所有CMS(Drupal,MediaWiki)只是后台的PHP或ASP集合,那么它们如何在没有扩展名或任何内容的情况下在www.example.com/directory/或www.example.com/File_name上显示页面?
这是一些.HTACCESS配置吗?蟒蛇?Perl的?怎么办?
我怎么能为我的服务器/网站做这个?(不使用CMS?)
我需要为 web.config 创建规则,它将所有扩展名为 .html 的文件请求重写为 .asp 并将所有 .asp 请求重定向到 .html
示例:
file_xyz.asp 重写为 file_xyz.html
directory1/file_xyz.asp 重写为 directory1/file_xyz.html
和
file_xyz.html 重定向到 file_xyz.asp
directory1/file_xyz.html 重定向到 directory1/file_xyz.asp
提前致谢
到目前为止,这是我对 web.config 的语法
<rule name="RewriteHTMLtoASP" stopProcessing="true">
<match url="^([^/]+)\.html$" />
<conditions logicalGrouping="MatchAll" />
<action type="Rewrite" url="{R:1}.asp" />
</rule>
<rule name="RedirectASPtoHTML" stopProcessing="true">
<match url="^([^/]+)\.asp$" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_METHOD}" pattern="^GET$" />
</conditions>
<action type="Redirect" url="{R:1}.html" appendQueryString="false" />
</rule>
Run Code Online (Sandbox Code Playgroud) 通常我用
<base href="http://domain.com/" /><!--[if ie]></base><![endif]-->
Run Code Online (Sandbox Code Playgroud)
我没有尝试过RewriteBase,我通常会感到困惑并不断改变它直到它工作.哪种方法最好,我显然找到了最佳解决方案,因为链接保持不变,因此在附加css文件时大多数情况下不会断开任何链接,例如
访问子目录时,它始终保持不变.虽然,当我不使用标签,并且我访问子目录时,它在我使用时打破了css链接
<link href="css/main.css" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
由于我的PHP文档将包含标题,
<?php include("include/global_header.php"); ?>
Run Code Online (Sandbox Code Playgroud)
如果我没有这样做,我将不得不使用:
<link href="../css/main.css" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
访问子目录时可能会中断.
那么...... RewriteBase的工作原理是否相同?
你的意见.
好吧实际上我不确定网址中的最后一个字符串是文件还是目录...例如facebook.com/skaloot.skaloot文件(facebook.com/skaloot.php)或目录?(facebook.com/skaloot/index.php)我如何摆脱".php"或"/"......
谢谢...
我怎么能改变这个:
(1) http://test.com/?page=home
Run Code Online (Sandbox Code Playgroud)
进入这个:
(2) http://test.com/home
Run Code Online (Sandbox Code Playgroud)
我想要它,如果你键入(2)服务器发送(1)
我正在使用codeigniter并且正在考虑如何创建主页控制器,http:// localhost的控制器.截至目前,我可以访问http:// localhost / {controller}的所有控制器,但不仅仅是localhost.我的.htaccess如下:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|sandbox|scripts|robots\.txt)
RewriteRule ^(.*)$ /index.php/test/$1 [L]
Run Code Online (Sandbox Code Playgroud) 早上好,
我的网站还有另一个问题.我开发了一个类似于yellowpages.com的网站(不是那么相似但只是想知道)
现在他们让我用SEO和网址重写做一些疯狂的事情.
我将从我的main.php开始
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'surf/category/<id:[0-9]+>/page/<page:[0-9]+>'=>'naviga/categoria/',
'surf/subcategory/<id:[0-9]+>/page/<page:[0-9]+>'=>'naviga/sottocategoria/',
'surf/page/<page:[0-9]+>'=>'surf/',
'contact' =>'site/contact/',
'write-mail/<id:[0-9]+>' =>'site/contact/',
'privacy' =>'site/page/view/privacy',
'register'=>'site/page/view/register',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
Run Code Online (Sandbox Code Playgroud)
现在请求..... T_T他们想要的网址将是这样的:
http://domain.com/category-name/而不是http://domain.com/surf/category/3(例如)
http://domain.com/category-name/sub-category-name/而不是http://domain.com/surf/subcategory/3
http://domain.com/category-name/sub-category-name/society-name/而不是http://domain.com/detail/2
显然,链接的其余部分必须使用最后3个控制器规则....有人可以帮助我??? 我处在一个非常紧张的地方......如果我找不到周二的解决方案,他们会踢我的屁股.....
T_T
在此先感谢您的帮助.
我在我的Debian服务器上运行Apache和Tomcat,Apache使用mod_jk代理对Tomcat的请求并返回.我在Tomcat中安装了Jenkins.安装工作正常,代理工作也正常.
现在我只是对我的重写规则有问题(我认为).
我有的是:
ci.<mydomain>.com/jenkins
我想要的是:
ci.<mydomain>.com
我对Apache中的重写规则没有足够的经验,而且//google也没有帮助我(可能我没有使用正确的关键词).所以任何帮助都表示赞赏.
这是我的设置:
Apache版本:Apache/2.2.16(Debian)
Tomcat版本:Apache Tomcat/7.0.27
我的worker.properties文件看起来像这样:
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
Run Code Online (Sandbox Code Playgroud)
我的子域/虚拟主机的定义:
<VirtualHost *>
ServerName ci.<mydomain>.com
ServerAlias www.ci.<mydomain>.de
ErrorLog /var/log/apache2/ci_error.log
LogLevel warn
CustomLog /var/log/apache2/ci_access.log combined
JKMount /jenkins/* worker1
JKMount /jenkins worker1
RewriteEngine on
RewriteRule ^/$ /jenkins/ [R=permanent]
RewriteRule ^/jenkins/(.*)$ ajp://localhost:8009/jenkins/$1 [P]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
Jenkins只是我希望Tomcat服务的一个应用程序.大多数其他应用程序也将拥有自己的虚拟主机.据我所知,mod_jk的东西,这个工作者应该足够我所有的其他应用程序,但也许我错了.
由于我已经可以通过子域访问Jenkins,我认为(如前所述)只是正确的重写规则.
任何帮助表示赞赏,我很感谢任何建议或暗示:)
关于重写规则的htaccess问题
我的文件夹中有3个文件
create.php
index.html
index.php
Run Code Online (Sandbox Code Playgroud)
我把它作为重写规则的.htaccess
DirectoryIndex index.php
RewriteEngine On
RewriteBase /admin/
RewriteRule ^([^/]+)/([^/]+)/?$ permissions/index.php?action=$1&id=$2 [L,QSA]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]
Run Code Online (Sandbox Code Playgroud)
问题是我想访问该网站
http://member.mydomain.com/admin/permissions/create
Run Code Online (Sandbox Code Playgroud)
但它告诉我
The requested URL /admin/create.php was not found on this server.
Run Code Online (Sandbox Code Playgroud)
我的.htaccess有什么问题,重写规则主要是为了让index.php进行查询发送,我希望我的create.php可以通过路径访问
http://member.mydomain.com/admin/permissions/create
Run Code Online (Sandbox Code Playgroud)
谢谢 !!
更新了.htaccess
DirectoryIndex index.php
RewriteEngine On
RewriteBase /admin/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
RewriteRule ^([^/]+)/([^/]+)/?$ permissions/index.php?action=$1&id=$2 [L,QSA]
RewriteCond %{REQUEST_FILENAME} -d …Run Code Online (Sandbox Code Playgroud) 我正在使用Cake 2.3,我有一个像这样的URL:
http://www.example.com/events/event_name
Run Code Online (Sandbox Code Playgroud)
我想表现出来
http://www.example.com/event_name
Run Code Online (Sandbox Code Playgroud)
我已经通过了很多链接,但没有成功,我在这里发帖.请帮帮我.
url-rewriting ×10
php ×5
.htaccess ×4
mod-rewrite ×4
apache ×2
asp.net ×1
cakephp ×1
cakephp-2.3 ×1
codeigniter ×1
iis ×1
iis-7 ×1
mod-jk ×1
redirect ×1
seo ×1
stylesheet ×1
subdomain ×1
tomcat ×1
url ×1
web-config ×1
yii ×1
yii-routing ×1