2012-01-28 67 views
0

我已经启用启用了mod_rewrite,并在httpd.conf如下:ZendFrameWork mod_rewrite启用,但url仍然不起作用 - wampserver 2.1?

<Directory /> 
    Options FollowSymLinks 
    AllowOverride all 
    Order allow,deny 
    Allow from all 
</Directory> 

我已成立了一个别名指向公用文件夹项目127.0.0.1/whatford/

但我仍然必须前缀我的URL与index.php访问其他控制器/视图example = 127.0.0.1/whatford/index.php/contact - 而不是127.0.0.1/whatford/contact?

任何帮助,将不胜感激感谢

+0

你说的是一个虚拟主机? – RockyFord 2012-01-28 11:27:17

回答

0

我用这个:
$_SERVER["REQUEST_URI"] = str_replace('index.php','',$_SERVER["REQUEST_URI"]);
添加到我的index.php顶部摆脱在URL中的index.php。

也检查了这个Vhost in Zend Server,跟着这篇文章,你可以确保你的apache安装对ZF是正确的,即使你没有设置完整的Vhost。

+0

感谢您的回答我已经使用戴夫克拉克的方法,现在正在工作......非常感谢 – Ledgemonkey 2012-01-28 12:17:43

+0

是的抱歉说的是虚拟主机,谢谢 – Ledgemonkey 2012-01-28 12:19:37

3

尝试使用虚拟主机。

以下是你可以,如果你使用的是Windows更新ç尝试基于域名test.local

所以设置:\ WINDOWS \ SYSTEM32 \ drivers \ etc下\加入这样的域名主机:

# Copyright (c) 1993-2009 Microsoft Corp. 
# 
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows. 
# 
# This file contains the mappings of IP addresses to host names. Each 
# entry should be kept on an individual line. The IP address should 
# be placed in the first column followed by the corresponding host name. 
# The IP address and the host name should be separated by at least one 
# space. 
# 
# Additionally, comments (such as these) may be inserted on individual 
# lines or following the machine name denoted by a '#' symbol. 
# 
# For example: 
# 
#  102.54.94.97  rhino.acme.com   # source server 
#  38.25.63.10  x.acme.com    # x client host 

# localhost name resolution is handled within DNS itself. 
    127.0.0.1  localhost 
    127.0.0.1  test.local 

如果你使用Apache的Windows更新下像这样的httpd-vhosts.conf文件(请确保你把正确的文件夹名称的DocumentRoot和目录下):

# 
# Virtual Hosts 
# 
# If you want to maintain multiple domains/hostnames on your 
# machine you can setup VirtualHost containers for them. Most configurations 
# use only name-based virtual hosts so the server doesn't need to worry about 
# IP addresses. This is indicated by the asterisks in the directives below. 
# 
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.2/vhosts/> 
# for further details before you try to setup virtual hosts. 
# 
# You may use the command line option '-S' to verify your virtual host 
# configuration. 
# 
# Use name-based virtual hosting. 
# 
# NameVirtualHost *:80 
# 
# VirtualHost example: 
# Almost any Apache directive may go into a VirtualHost container. 
# The first VirtualHost section is used for all requests that do not 
# match a ServerName or ServerAlias in any <VirtualHost> block. 

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "C:\www\yourProjectApplicationFolder\public" 
    ServerName test.local 
    <Directory C:\www\yourProjectApplicationFolder\public> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    allow from all 
    </Directory> 
</VirtualHost> 

你需要确保你取消注释Apache的httpd.conf文件

#Include conf/extra/httpd-vhosts.conf 

线,所以它看起来是这样的:

Include conf/extra/httpd-vhosts.conf 

然后重新启动Apache和去http://test.local,你应该有你的起始页面。

让我知道,如果这对你有用,或者如果你遇到更多的问题。

干杯,

戴夫

+0

完美工作!非常感谢您的优秀回答.... – Ledgemonkey 2012-01-28 12:15:25

+0

无后顾之忧,乐于助人;-D – dkcwd 2012-01-28 12:36:32

相关问题